第一范文网 - 专业文章范例文档资料分享平台

数字信号处理课程设计(1)MATLAB实现 (3)

来源:用户分享 时间:2020-06-24 本文由凉情凉心 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

数字信号处理课程设计报告

3.1 显示幅度谱函数IIR_DispMag()

function IIR_DispMag() %显示幅度谱函数IIR_DispMag

[num den CYPL YYYFlag]=IIR_Createfilter; %参数调用以设计好的滤波器参数 if(~YYYFlag) return; end

figure(1);

[h f]=freqz(num,den,512,CYPL); % 转换成数字滤波器 plot(f,abs(h)); %回执幅频曲线 grid on; zoom on;

3.2 创建滤波器IIR_Createfilter()

3.2.1 巴特沃斯低通滤波器设计 Wp=2*pi*f2/f1;

Ws=2*pi*f3/f1;

OmigaP=Wp*f1; 脉冲相应不变法的数字指标与模拟指标频率转换 OmigaS=Ws*f1;

[n W]=buttord(OmigaP,OmigaS,Rp,Rs,'s');%调用巴特沃斯滤波器函数 [B A]=butter(n,W,'s');%默认为低通滤波器 [num,den]=impinvar(B,A,f1);

3.2.2 巴特沃斯高通滤波器设计 Wp=2*pi*f2/f1;

Ws=2*pi*f3/f1; OmigaP=Wp*f1; OmigaS=Ws*f1;

[n W]=buttord(OmigaP,OmigaS,Rp,Rs,'s');

[B A]=butter(n,W,'high','s'); %高通滤波器设计 [num,den]=impinvar(B,A,f1);

3.2.3 切比雪夫I型低通滤波器设计

Wp=2*pi*f2/f1;

Ws=2*pi*f3/f1;

wp1=Wp*f1; %频率转换 ws1=Ws*f1;

[n W]=cheb1ord(wp1,ws1,Rp,Rs,'s'); % 切比雪夫I型函数调用 [B A]=cheby1(n,1,W,'low','s'); [num,den]=bilinear(B,A,f1);

3.2.4 切比雪夫I型高通滤波器设计 Wp=2*pi*f2/f1;

Ws=2*pi*f3/f1;

wp1=Wp*f1; %频率转换

7

数字信号处理课程设计报告

ws1=Ws*f1;

[n W]=cheb1ord(wp1,ws1,Rp,Rs,'s'); % 切比雪夫I型函数调用 [B A]=cheby1(n,1,W,'high','s'); [num,den]=bilinear(B,A,f1);

3.3 显示相位谱函数IIR_DispAngle()

function IIR_DispAngle()

[num den CYPL YYYFlag]=IIR_Createfilter; if(~YYYFlag) return; end

figure(2);

[h f]=freqz(num,den,512,CYPL); plot(f,(angle(h))); grid on; zoom on;

3.4 显示零极点图函数IIR_DispZplane()

function IIR_DispZplane()

[num den CYPL YYYFlag]=IIR_Createfilter; if(~YYYFlag) return; end

figure(3);

zplane(num,den); % Z域变换 axis([-5,5,-2,2]);

3.5 选择波形文件IIR_GetWAVFile()

function sig=IIR_GetWAVFile()

[name,path]=uigetfile('*.wav','请选择一个.wav波形文件');%选取文件的函数调用 file_path=[path,name];

if(~(isstr(name))|~(isstr(path))) sig=[]; return; end

[data freq bits]=wavread(file_path); time=length(data)/freq;

%info=['源信号-'name ';'str2num(time) '秒;fs='str2num(freq) 'Hz']; s=[];

s.data=data; s.freq=freq; s.bits=bits; %s.info=info; s.time=time;

8

数字信号处理课程设计报告

data_hndl=findobj(gcbf,'Tag','Button_WAV'); set(data_hndl,'Userdata',s);

3.6 播放原始文件IIR_Playorg

function IIR_Playorg()

data_hndl=findobj(gcbf,'Tag','Button_WAV'); sig_info=get(data_hndl,'Userdata'); data=sig_info.data; fs=sig_info.freq; sound(data,fs);

3.7 播放时滤波后文件IIR_Playmod

function IIR_Playmod

data_hndl=findobj(gcbf,'Tag','Button_WAV'); sig_info=get(data_hndl,'Userdata'); data=sig_info.data; fs=sig_info.freq;

[B A suc1 suc2]=IIR_Createfilter; if(~suc2) return; end

out=filter(B,A,data); %音频文件通过选择的滤波器 sound(out,fs);

4 代码的运行与调试

本次试验的大部分代码是书上给出的,但是有点小问题,就是在自编函数哪有错误,原句是:if(strcmp(fil_name,’错误代码’)),修改过后的if(strcmp(fil_name,’巴特沃斯’)),这样程序就可以运行了。再有就是要录一段自己的音频文件,并且格式是WMA的,最好是有高音和低音区别的,因为这样我们就可以更清楚的辨别滤波器的滤音效果。

5 软件运行与测试

在巴特沃斯低通滤波器环境情况下,设置通带截止频率与阻带截止频率分别为100,500;得到的幅度、相位,零极点图如图示:

9

数字信号处理课程设计报告

幅度响应(a) 相位响应(b) 图5.1 低通的幅度、相位,零极点图

零极点(c) 在巴特沃斯高通滤波器环境情况下,设置通带截止频率与阻带截止频率分别为500,100;得到的幅度、相位,零极点图如图示:

幅度响应(a) 相位响应(b) 图5.2 高通的幅度、相位,零极点图

零极点(c) 在切比沃雪夫I高通滤波器环境下,设置通带截止频率与阻带截止频率分别为200,100;得到幅度、相位,零极点图如图5.3所示。

幅度(a) 相位(b) 图5.3 幅度、相位,零极点图

零极点(c) 在切比沃雪夫I低通滤波器环境下,设置通带截止频率与阻带截止频率分别为200,100;得到幅度、相位,零极点图如图5.4所示。

10

数字信号处理课程设计报告

幅度(a) 相位(b) 图5.4 幅度、相位,零极点图

零极点(c) 点击选择音频文件按钮,会出现选择文件的信息框,如图5.4。

图5.4 读取音频文件

选择音频文件李栋.wav,先播放原音频文件,然后播放滤波后的音频文件,二者一对比明显可以听出滤波后音频文件的效果了,高音部分是被滤除的,只保留了满足低通条件的那部分音频,听起来声音低沉,还有点延时。

11

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育数字信号处理课程设计(1)MATLAB实现 (3)全文阅读和word下载服务。

数字信号处理课程设计(1)MATLAB实现 (3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1101929.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top