综合仿真课程设计说明书分析.docx
《综合仿真课程设计说明书分析.docx》由会员分享,可在线阅读,更多相关《综合仿真课程设计说明书分析.docx(18页珍藏版)》请在冰点文库上搜索。
综合仿真课程设计说明书分析
《综合仿真》课程设计
说明书
专业名称:
电子信息工程
班级:
学号:
姓名:
指导教师:
日期:
2014年1月5日
一、设计的目的和意义:
1
1.设计目的:
2
2.设计要求:
2
二、设计原理及规模:
2
三、设计过程3
1.方案一设计3
2.方案一实现4
3.方案二设计7
4.方案二实现7
四、结论11
五、参考文献11
六、附录11
附录一系统的频域分析代码11
附录二低通滤波器的设计代码12
一、设计的目的和意义:
1.设计目的:
该课程设计将采用Matlab软件来实现其在信号与系统和数字信号处理两门课程中的实际应用问题。
通过Matlab软件的学习及使用,可以加强学生理论与实际的联系,使学生达到能独立利用计算机仿真工具去解决实际问题的目的。
本课程设计既可以加深学生对理论知识的掌握,又可以把所学的知识系统、高效的贯穿到实践中来,避免理论与实践的脱离。
同时提高独立编程水平,并在实践中不断完善理论基础,有助于培养综合能力,并为今后的工作打下基础。
2.设计要求:
1)巩固所学知识,培养学生理论联系实际及上机实践能力。
2)掌握Matlab软件在信号与系统和数字信号处理两门课中的应用。
3)培养学生独立完成工程项目的能力以及小组合作能力。
4)各种设计文档用A4纸存储、打印。
二、设计原理及规模:
方案一:
用Matlab软件实现其在信号与系统中的应用——系统的频域分析。
本题研究莫尔斯码的幅度调制与解调。
本题中信号的形式为
a)其中信号x(t)由文件ctftmod.mat定义,可用命令Loadctftmod将文件ctftmod.mat定义的变量装入系统内存。
运行命令Loadctftmod后,装入系统的变量有afbfdashdotf1f2tx,其中bfaf:
定义了一个连续系统H(s)的分子多项式和分母多项式。
可利用freqs(bf,af,w)求出该系统的频率响应,也可用sys=tf(bf,af)得到系统的模型,从而用lsim求出信号通过该系统的响应。
dashdot:
给出了莫尔斯码中的基本信号dash和dot的波形。
f1、f2:
载波频率。
t:
信号x(t)的抽样点。
x:
信号x(t)的在抽样点上的值。
信号x(t)含有一段简单的消息。
Agend007的最后一句话是Thefutureoftechnologyliesin···还未说出最后一个字,Agend007就昏倒了。
你(Agend008)目前的任务就是要破解Agend007的最后一个字。
该字的信息包含在信号x(t)中。
信号x(t)具有式
(1)的形式。
式中的调制频率分别由变量f1和f2给出,信号m1(t),m2(t)和m3(t)对应于字母表中的单个字母,这个字母表已用国际莫尔斯码进行编码,如下表所示:
A·-
H····
O---
V···-
B-···
I··
P·--·
W·--
C-·-·
J·---
Q--·-
X-··-
D-··
K-·-
R·-·
Y-·--
E·
L·-··
S···
Z--··
F··-·
M--
T-
G--·
N-·
U··-
1)字母B可用莫尔斯码表示为b=[dashdotdotdot],画出字母B莫尔斯码波形;
2)用freqs(bf,af,w)画出系统的幅度响应;
3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应,解释你所获得的结果;
4)用解析法推导出下列信号的Fourier变换
5)利用4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母;
6)对信号m2(t)和m3(t)重复5)。
请问Agent008
Thefutureoftechnologyliesin···
方案二:
用Matlab软件实现其在数字信号处理中的应用。
本部分内容要求同学们自己录制一段语音,并用Matlab软件实现夹杂噪声的语音信号的分析与仿真,并设计出合适的FIR数字滤波器。
具体要求如下:
1)录制一段自己的语音信号,并对录制的信号进行采样;
2)画出采样后语音信号的时域波形和频谱图;
3)根据所选滤波器的技术指标,设计一滤波器将夹杂在语音信号中的噪声滤除,画出滤除噪声后的信号时域图及其频谱图。
并对滤波前后的信号进行对比,分析信号的变化;
4)回放语音信号,预期结果是可以感觉滤波前后的声音有变化;
5)并尝试用MATLAB设计一信号处理系统界面,可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。
三、设计过程
1.方案一设计
信号的形式为
,其中信号x(t)由文件ctftmod.mat定义,可用命令Loadctftmod将文件ctftmod.mat定义的变量装入系统内存。
运行命令Loadctftmod后,装入系统的变量有afbfdashdotf1f2tx
bfaf:
定义了一个连续系统H(s)的分子多项式和分母多项式。
可利用freqs(bf,af)求出该系统的频率响应,也可用sys=tf(bf,af)得到系统的模型,从而用lsim求出信号通过该系统的响应。
各变量的含义dashdot:
给出了莫尔斯码中的基本信号dash和dot波形
f1f2:
载波频率
t:
信号x(t)的抽样点
x:
信号x(t)的在抽样点上的值
(t):
信号x(t)含有一段简单的消息
2.方案一实现
(1)字母B可用莫尔斯码表示为b=[dashdotdotdot],画出字母B莫尔斯码波形;
(2)用freqs(bf,af)画出系统的幅度响应;
(3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应,解释你所获得的结果;
(4)用解析法推导出下列信号的Fourier变换
;
;
;
(5)利用(4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母;
(6)对信号m2(t)和m3(t)重复(5)。
请问Agent008Thefutureoftechnologyliesin···
3.方案二设计
(1)首先录制好一段自己的语音。
(2)给录制好的语音信号加入随机噪音。
(3)用Matlab分别设计好3种类型的滤波器(指标自己确定):
低通型、高通型、带通型。
(4)用Matlab将加噪语音信号进行采样,并分别将其通过所设计的3种滤波器。
(5)用Matlab自带的语音返回函数收听滤波后的语音信号,分析并比较其与原语音信号的差异。
4.方案二实现
信号提取:
通过图形用户界面上的菜单功能按键采集电脑上的一段音频信号,完成音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。
信号调整:
在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。
信号变换:
在用户图形界面西啊对采集的语音信号进行Fourier等变换,并画出变换前后的频谱图和倒谱图。
信号滤波:
滤除语音信号中的噪音部分,可以采用抵用滤波、高通滤波、带通滤波,并比较各种滤波后的效果。
(1)
5.方案二设计
(1)首先录制好一段自己的语音。
(2)给录制好的语音信号加入随机噪音。
(3)用Matlab分别设计好3种类型的滤波器(指标自己确定):
低通型、高通型、带通型。
(4)用Matlab将加噪语音信号进行采样,并分别将其通过所设计的3种滤波器。
(5)用Matlab自带的语音返回函数收听滤波后的语音信号,分析并比较其与原语音信号的差异。
6.方案二实现
信号提取:
通过图形用户界面上的菜单功能按键采集电脑上的一段音频信号,完成音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。
信号调整:
在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。
信号变换:
在用户图形界面西啊对采集的语音信号进行Fourier等变换,并画出变换前后的频谱图和倒谱图。
信号滤波:
滤除语音信号中的噪音部分,可以采用抵用滤波、高通滤波、带通滤波,并比较各种滤波后的效果。
(1)原语音信号加噪后的语音信号滤波后输出信号
(2)随机噪声噪声频谱图
(3)原始语言信号频谱加噪后的语音信号频谱滤波后输出信号频谱
(3)滤波器幅频特性
四、结论
本设计实现了对莫尔斯加密电码进行分析和后期恢复,通过这次设计,使我接触到了很多之前没有学习过的理论知识而且使我在matlab知识方面有很大提高,学习并掌握了信号与系统的基本知识以及matlab7.1的使用方法。
通过动手实践操作,将理论知识应用于实际,使自己的知识更加生动丰富,经过一段时间的学习和制作,最终完成了基于matlab恢复摩尔斯电码的设计。
方案一在实现实验开始时,对ctftmod.mat文件的装载出现问题,最终下载文件后实现文件装载。
在实现过程中发现了多个函数的使用问题,通过上网查询资料,学会了有关lsim函数,load命令的使用,plot命令的使用;freqs(bf,af)的用法;解析法推导信号的Fourier变换。
方案二在加完噪声后剩下的就是滤波了,在我做这些滤波是发现滤波效果并不是很明显,只是从时域图上看出滤波效果,在声音上差别不大。
到最后也没做出很好的滤波效果。
在最开始导入音频[x1,fs,dits]=wavread('F:
\say.wav');其中我原来用MP3录制的MAV文件,结果整了好长时间始终不能导入语音文件,后来在网上查资料他们说可能MAV文件的问题,我又下了一个音频文件转换工具CoolEditPRO。
通过此工具我将WAV文件转化为windowswav文件,最后导入了文件。
五、参考文献
[1]陈后金,胡健,薛健.信号与系统(第二版)[M].北京:
清华大学出版社,北京交通大学出版社,2005
[2]吴大正,信号与系统(第四版)[M].西安:
西安交通大学出版社,2006.
[3]郑君里,应启珩,杨为理.信号与系统引论[M].北京:
高等教育出版社,2009.
[4]梁红,梁洁,陈跃斌,等.信号与系统分析及MATLAB实现[M].电子工业出版社.2002,3.
[5]《数字信号处理教程》程佩青清华大学出版社.2001年8月第二版
六、附录
附录一系统的频域分析代码
whos
plot(dash)
plot(dot)
b=[dashdotdotdot]
plot(b)
freqs(bf,af)
ydash=lsim(bf,af,dash,t(1:
length(dash)));
ydot=lsim(bf,af,dot,t(1:
length(dot)));
subplot(2,1,1);
plot(t(1:
length(dash)),dash,t(1:
length(dash)),ydash,'--');
legend('dash','ydash');
subplot(2,1,2);
plot(t(1:
length(dot)),dot,t(1:
length(dot)),ydot,'--');
legend('dot','ydash');
m1=lsim(bf,af,x.*cos(2*pi*f1*t),t);
plot(t,m1);
m1=lsim(bf,af,x.*cos(2*pi*f1*t),t);
subplot(3,1,1);
plot(t,m1);
m1=lsim(bf,af,x.*sin(2*pi*f2*t),t);
subplot(3,1,2);
plot(t,m1);
m1=lsim(bf,af,x.*sin(2*pi*f1*t),t);
subplot(3,1,3);
plot(t,m1);
附录二低通滤波器的设计代码
[x1]=wavread('F:
\say.wav');
y1=fft(x1,1024);%对原始信号进行1024点傅里叶变换
Fs=45050;
f=Fs*(0:
511)/1024;
figure
(1)
subplot(2,2,1);
plot(x1)%显示原始信号
title('原始语音信号');
xlabel('time(s)');
ylabel('幅值');
figure(3)
subplot(2,2,1);
plot(f,abs(y1(1:
512)));
title('原始语音信号频谱');
xlabel('Hz');
ylabel('幅值');
N=length(x1);%计算原始语音信号的长度
x2=0.01*randn(N,2);
figure
(2)
subplot(1,2,1);
plot(x2)
title('高斯随机噪声');
xlabel('time(s)');
ylabel('幅值');
x3=x2+x1;
y3=fft(x2,1024);
figure
(2)
subplot(1,2,2);
plot(abs(y3));
title('噪声的频谱');
xlabel('Hz');
ylabel('幅值');
y2=fft(x3,1024);
figure
(1)
subplot(2,2,2);
plot(x3)%显示加噪后的语音信号
title('加噪后的语音信号');
xlabel('time(s)');
ylabel('幅值');
figure(3);
subplot(2,2,2);
plot(f,abs(y2(1:
512)));
title('加噪后的语音信号频谱');
xlabel('Hz');
ylabel('幅值');
Nbits=16;
wavwrite(x3,Fs,Nbits,'noise.wav');%将加噪的信号保存
Wp=3000*2*pi;Ws=3500*2*pi;Ap=0.3;As=50;Fs=45050;
wp=Wp/Fs;ws=Ws/Fs;%归一化通带截频阻带截频
wdelta=ws-wp;%过渡带宽
%由阻带最小衰减指标确定选用汉明窗并确定其阶数
N=ceil(6.6*pi/wdelta);
Nw=N;
n=0:
N-1;
wc=(wp+ws)/2;%理想截频
alpha=(N-1)/2;
m=n-alpha+eps;%理想滤波器脉冲响应
hd=sin(wc*m)./(pi*m);%采用汉明窗设计
win=hamming(Nw);
h=hd.*win';
b=h;
[H,f]=freqz(b,1,512,Fs);%绘制滤波器的幅频响应图
figure(4);
plot(f,20*log10(abs(H)))
xlabel('Hz');ylabel('幅值');
title('滤波器幅频特性');
x4=fftfilt(b,x3);%滤波输出
figure
(1);
subplot(2,2,3);
plot(x4)%绘制输出信号
xlabel('time(s)'),ylabel('幅值');
title('滤波后输出信号');
Y=fft(x4);
figure(3);
subplot(2,2,3);
plot(abs(Y));
xlabel('Hz');ylabel('幅值');
title('滤波后输出信号频谱');
pause;
sound(x1,45050);%读出原始语音信号
pause;
sound(x2,45050);
pause;
sound(x3,45050);
pause;
sound(x4,45050);%输入输出频谱