matlab频谱分析Matlab算法.docx
《matlab频谱分析Matlab算法.docx》由会员分享,可在线阅读,更多相关《matlab频谱分析Matlab算法.docx(2页珍藏版)》请在冰豆网上搜索。
matlab频谱分析Matlab算法
设计出一套完整的系统,对信号进行频谱分析和滤波处理;
1.产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计三种高通,低通,带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。
2.采集一段含有噪音的语音信号(可以录制含有噪音的信号,或者录制语音后再加进噪音信号),对其进行采样和频谱分析,根据分析结果设计出一合适的滤波器滤除噪音信号。
%写上标题
%设计低通滤波器:
[N,Wc]=buttord()
%估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc
[a,b]=butter(N,Wc);%设计Butterworth低通滤波器
[h,f]=freqz();%求数字低通滤波器的频率响应
figure
(2);%打开窗口2
subplot(221);%图形显示分割窗口
plot(f,abs(h));%绘制Butterworth低通滤波器的幅频响应图
title(巴氏低通滤波器'');
grid;%绘制带网格的图像
sf=filter(a,b,s);%叠加函数S经过低通滤波器以后的新函数
subplot(222);
plot(t,sf);%绘制叠加函数S经过低通滤波器以后的时域图形
xlabel('时间(seconds)');
ylabel('时间按幅度');
SF=fft(sf,256);%对叠加函数S经过低通滤波器以后的新函数进行256点的基—2快速傅立叶变换
w=%新信号角频率
subplot(223);
plot());%绘制叠加函数S经过低通滤波器以后的频谱图
title('低通滤波后的频谱图');
%设计高通滤波器
[N,Wc]=buttord()
%估算得到Butterworth高通滤波器的最小阶数N和3dB截止频率Wc
[a,b]=butter(N,Wc,'high');%设计Butterworth高通滤波器
[h,f]=freqz();%求数字高通滤波器的频率响应
figure(3);
subplot(221);
plot());%绘制Butterworth高通滤波器的幅频响应图
title('巴氏高通滤波器');
grid;%绘制带网格的图像
sf=filter();%叠加函数S经过高通滤波器以后的新函数
subplot(222);
plot(t,sf);;%绘制叠加函数S经过高通滤波器以后的时域图形
xlabel('Time(seconds)');
ylabel('Timewaveform');
w;%新信号角频率
subplot(223);
plot());%绘制叠加函数S经过高通滤波器以后的频谱图
title('高通滤波后的频谱图');
%设计带通滤波器
[N,Wc]=buttord([)
%估算得到Butterworth带通滤波器的最小阶数N和3dB截止频率Wc
[a,b]=butter(N,Wc);%设计Butterworth带通滤波器
[h,f]=freqz();%求数字带通滤波器的频率响应
figure(4);
subplot(221);
plot(f,abs(h));%绘制Butterworth带通滤波器的幅频响应图
title('butterbandpassfilter');
grid;%绘制带网格的图像
sf=filter(a,b,s);%叠加函数S经过带通滤波器以后的新函数
subplot(222);
plot(t,sf);%绘制叠加函数S经过带通滤波器以后的时域图形
xlabel('Time(seconds)');
ylabel('Timewaveform');
SF=fft();%对叠加函数S经过带通滤波器以后的新函数进行256点的基—2快速傅立叶变换
w=(%新信号角频率
subplot(223);
plot('));%绘制叠加函数S经过带通滤波器以后的频谱图
title('带通滤波后的频谱图');