云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > dsp课程设计-基于MATLAB的数字滤波器的设计

dsp课程设计-基于MATLAB的数字滤波器的设计

  • 62 次阅读
  • 3 次下载
  • 2025/6/14 12:14:23

课程设计说明书

fc=1200; fs=22050; As=15; Ap=1;

wb=fb*2*pi/fs; %将数字频率转化为数字角频率 wc=fc*2*pi/fs;

Wb=2*fs*tan(wb/2); %数字角频率转化为模拟角频率 Wc=2*fs*tan(wc/2);

[n,wn]=buttord(Wb,Wc,Ap,As,'s'); %最小阶次为N的巴特沃兹低通滤波器 [b,a]=butter(n,wn,'s'); %截止频率为wn的低通模拟巴特沃兹滤波器 [bd,ad]=bilinear(b,a,fs); %将模拟滤波器转化为数字滤波器 [h,w]=freqz(bd,ad,1024); %数字滤波器的n点复频响应值 axes(handles.axes1)

plot(w*fs/(2*pi),20*log10(abs(h))); %复频特性曲线· title('IIR低通滤波器幅频特性');

[x,fs,bits]=wavread('W.wav'); %读取语音信号 n=length(x); %输入语音信号的长度 f=fs*(0:(n/2-1))/n;

sound(x); %回放输入的语音信号 X=fft(x); %输入信号的傅里叶变换

z=filter(bd,ad,x); %对输入的语音信号进行滤波 axes(handles.axes2) plot(x);

title('原始语音信号的波形'); axes(handles.axes3) plot(z);

title('IIR低通滤波后信号的波形'); sound(z); %回放滤波后的语音信号 axes(handles.axes4) plot(f,abs(X(1:n/2))); title('原始语音信号的频谱'); xlabel('Hz'); Z=fft(z);

axes(handles.axes5) plot(abs(Z(1:n/2)));

title('IIR低通滤波后信号的频谱'); xlabel('Hz');

37

课程设计说明书

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) %IIR 高通滤波器: fb = 5000; fc = 4800; fs = 22050; as = 15; ap = 1;

wb = fb*2*pi/fs; %将数字频率转化为数字角频率 wc = fc*2*pi/fs;

Wb = 2*fs*tan(wb/2); %数字角频率转化为模拟角频率 Wc = 2*fs*tan(wc/2);

[n,wn]=buttord(Wb,Wc,ap,as,'s'); %最小阶次为N的巴特沃兹低通滤波器 [b,a]=butter(n,wn,'high','s'); %截止频率为wn的高通模拟巴特沃兹滤波器 [bd,ad]=bilinear(b,a,fs); %将模拟滤波器转化为数字滤波器 [h,w]=freqz(bd,ad,1024); %数字滤波器的n点复频响应值 axes(handles.axes1)

plot(w*fs/(2*pi),20*log10(abs(h))); %复频特性曲线 grid;

title('IIR高通滤波器的幅频特性');

[x,fs,bits]=wavread('W.wav'); %读取语音信号 n=length(x); %输入语音信号的长度 f=fs*(0:(n/2-1))/n;

sound(x); %回放输入的语音信号 X=fft(x); %输入信号的傅里叶变换

z=filter(bd,ad,x); %对输入的语音信号进行滤波 Z=fft(z);

axes(handles.axes2) plot(x);

title('原始语音信号的波形'); axes(handles.axes3) plot(z);

title('IIR高通滤波后的信号波形');

38

课程设计说明书

sound(z); %回放滤波后的语音信号 axes(handles.axes4) plot(f,abs(X(1:n/2))); title('原始语音信号的频谱'); xlabel('Hz');

axes(handles.axes5) plot(f,abs(Z(1:n/2)));

title('IIR高通滤波后的信号频谱');

xlabel('Hz');

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles) %IIR 带通滤波器: fc1=1000; fb1=1200; fc2=3200; fb2=3000; fs =8000; as =15; ap = 1;

wb =[fb1 fb2]*2*pi/fs; %将数字频率转化为数字角频率 wc =[fc1 fc2]*2*pi/fs;

Wb =2*fs*tan(wb/2); %数字角频率转化为模拟角频率 Wc =2*fs*tan(wc/2);

[n,wn]=buttord(Wb,Wc,ap,as,'s'); %最小阶次为N的巴特沃兹低通滤波器 [b,a]=butter(n,wn,'s'); %通带为wn的模拟带通滤波器

[bd,ad]=bilinear(b,a,fs); %将模拟带通滤波器转换为数字带通滤波器 [h,w]=freqz(bd,ad); %数字带通滤波器的n点复频响应值 axes(handles.axes1)

plot(w*fs/(2*pi),20*log10(abs(h)));

grid; %图上加坐标网络

title('IIR带通滤波器幅频特性'); [x,ft,bits]=wavread('W.wav'); %读取语音信号

39

课程设计说明书

n=length(x); %输入语音信号的长度 f=fs*(0:(n/2-1))/n; sound(x);

X=fft(x); %输入信号的傅里叶变换 z=filter(bd,ad,x); %对输入的语音信号进行滤波 Z=fft(z);

axes(handles.axes2) plot(x);

title('原始信号的波形'); axes(handles.axes3) plot(z);

title('IIR带通滤波后的信号波形');

sound(z);

axes(handles.axes4) plot(f,abs(X(1:n/2))); title('原始信号的频谱'); xlabel('Hz');

axes(handles.axes5) plot(f,abs(Z(1:n/2)));

title('IIR带通滤波后的信号频谱');

xlabel('Hz');

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles) %FIR 低通滤波器: fb=1000;fc=1200;

Ap=1;As=15;Fs=22050;

ws=2*pi*fc/Fs; %求数字角频率 wp=2*pi*fb/Fs;

N=ceil(12*pi/(ws-wp)); %确定FIR低通滤波器的窗口长度N Wn=(fb+fc)/Fs; %求归一化截止频率

b=fir1(N,Wn,blackman(N+1)); % 得到截止频率为wc且满足线性相位条件的N阶FIR低通滤波器,窗函数为布莱克曼窗

40

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

课程设计说明书 fc=1200; fs=22050; As=15; Ap=1; wb=fb*2*pi/fs; %将数字频率转化为数字角频率 wc=fc*2*pi/fs; Wb=2*fs*tan(wb/2); %数字角频率转化为模拟角频率 Wc=2*fs*tan(wc/2); [n,wn]=buttord(Wb,Wc,Ap,As,'s'); %最小阶次为N的巴特沃兹低通滤波器 [b,a]=butter(n,wn,'s'); %截止频率为wn的低通模拟巴特沃兹滤波器 [bd,ad]=bilinear(b,a,fs); %将模拟滤波器转化为数字滤波器 [h,w]=freqz(bd,ad,1024); %数字滤波器的n点复频响应值 axes(handles.axes1) plot(w*fs/

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com