MATLAB语言及应用选修课课程设计报告.docx
《MATLAB语言及应用选修课课程设计报告.docx》由会员分享,可在线阅读,更多相关《MATLAB语言及应用选修课课程设计报告.docx(9页珍藏版)》请在冰豆网上搜索。
MATLAB语言及应用选修课课程设计报告
MATLAB语言及应用选修课课程设计报告
一、问题重述:
实作一:
信号的产生、显示、谱分析、滤波
1、理想信号的时域表示:
x=Asin(wt),A=444.128,w=100pi,02、产生信号并显示其波形、幅度谱、相位谱;
3、在原始信号上加上-3dB的白噪声重复上述过程;
4、在上述-3dB背景下采用Matlab中的LMS进行滤波,画出滤波后的信号和相应图谱,并对不同LMS参数得到的结果进行分析、比对。
实作二:
语音信号的录制和处理(实作)
1、录制一段自己的语音信号,并对录制的信号进行采样(界面上以打开音频文件体现);
2、回放语音信号,并画出采样后的语音信号的时域波形和频谱图;
3、给原始语音信号加上-3dB的白噪声,画出加噪声后的波形与频谱图;
4、设计一带通滤波器对原始信号进行滤波,频带为1000Hz至2000Hz,并画出滤波器的响应和滤波后信号的时域波形及频谱,并对滤波后的信号进行对比,分析信号的变化;
5、设计一个信号处理系统界面;(上述功能最好都能通过GUI界面完成)
6、按照要求完成课程设计报告。
二、问题解答:
实作一:
源代码如下:
%%%%%%%%%%%%%%%%%%%%原始信号%%%%%%%%%%%%%%%%%%%%%
figure
(1);
n=0:
500;
A=444.128;
fs=500;
w0=100*pi;
x=A*sin(w0*n/fs);
subplot(3,1,1);plot(x);
title('理想信号');
FX=(fft(x));
subplot(3,1,2);
plot(fs*(0:
250)/500,abs(FX(1:
251)));
title('幅度谱');
angX=angle(FX);
subplot(3,1,3);
plot(fs*(0:
250)/500,angX(1:
251));
title('相位谱')
%%%%%%%%%%%%%%%%%%%%加噪声%%%%%%%%%%%%%%%%%%%%
x=awgn(x,-3,'measured');
figure
(2);
subplot(3,1,1);
plot(x);
title('加噪声后原始信号');
FX=(fft(x));
subplot(3,1,2);
plot(fs*(0:
250)/500,abs(FX(1:
251)));
title('加噪声后幅度谱');
angX=angle(FX);
subplot(3,1,3);
plot(fs*(0:
250)/500,angX(1:
251));
title('加噪声后相位谱')
%%%%%%%%%%%%%%%%%%%%滤波%%%%%%%%%%%%%%%%%%%%
x=x-mean(x);
x=x./max(x);
M=64;
d=[x(M:
length(x))rand(1,M-1)];
mu=0.00001;
ha=adaptfilt.lms(M,mu);
[y,e]=filter(ha,x,d);
figure(3);
subplot(3,1,1);
plot(y);
title('滤波后原始信号');
FX=(fft(y));
subplot(3,1,2);
plot(fs*(0:
250)/500,abs(FX(1:
251)));
title('滤波后幅度谱');
angX=angle(FX);
subplot(3,1,3);
plot(fs*(0:
250)/500,angX(1:
251));
title('滤波后相位谱')
%%%%%%%%%%%%%%%%%%%%结束%%%%%%%%%%%%%%%%%%%%
画图如下:
实作二:
源代码如下:
%%%%%%%%%%%%%%%%%%%%原始信号%%%%%%%%%%%%%%%%%%%%%
figure
(1);
n=0:
500;
A=500;
fs=5000;
w0=2000*2*pi;
x=A*sin(w0*n/fs);
subplot(3,1,1);plot(x);
title('理想信号');
FX=(fft(x));
subplot(3,1,2);
plot(fs*(0:
250)/500,abs(FX(1:
251)));
title('幅度谱');
angX=angle(FX);
subplot(3,1,3);
plot(fs*(0:
250)/500,angX(1:
251));
title('相位谱')
%%%%%%%%%%%%%%%%%%%%加噪声%%%%%%%%%%%%%%%%%%%%
x=awgn(x,-3,'measured');
figure
(2);
subplot(3,1,1);
plot(x);
title('加噪声后原始信号');
FX=(fft(x));
subplot(3,1,2);
plot(fs*(0:
250)/500,abs(FX(1:
251)));
title('加噪声后幅度谱');
angX=angle(FX);
subplot(3,1,3);
plot(fs*(0:
250)/500,angX(1:
251));
title('加噪声后相位谱')
%%%%%%%%%%%%%%%%%%%%滤波%%%%%%%%%%%%%%%%%%%%
x=x-mean(x);
x=x./max(x);
M=64;
d=[x(M:
length(x))rand(1,M-1)];
mu=0.00001;
ha=adaptfilt.lms(M,mu);
figure(3);
n=4;Wn=2*[10002000]./(fs);
ftype='bandpass';
[b,a]=butter(n,Wn);
[y,e]=filter(b,a,x);
subplot(3,1,1);
plot(y);
title('滤波后原始信号');
FX=(fft(y));
subplot(3,1,2);
plot(fs*(0:
250)/500,abs(FX(1:
251)));
title('滤波后幅度谱');
angX=angle(FX);
subplot(3,1,3);
plot(fs*(0:
250)/500,angX(1:
251));
title('滤波后相位谱')
figure(4);
freqz(b,a,512,'whole',fs);
title('滤波器的响应');
%%%%%%%%%%%%%%%%%%%%结束%%%%%%%%%%%%%%%%%%%%
画图如下: