双通带切比雪夫带通滤波器的设计matlab
- 格式:doc
- 大小:346.35 KB
- 文档页数:30
目录目录 (1)Abstract (3)1 绪论 (4)2 IIR数字滤波器设计的原理与方法 (5)2.1 IIR数字滤波器设计的原理 (5)2.2 IIR 数字滤波器设计的基本方法 (7)3 IIR带通滤波器的MATLAB 设计 (9)3.1 IIR带通滤波器的设计流程 (10)3.2 IIR带通滤波器的设计步骤 (11)心得与体会 (22)参考文献 (23)摘要数字滤波是数字信号分析中最重要的组成部分之一,数字滤波与模拟滤波相比,具有精度和稳定性高、系统函数容易改变、灵活性高、不存在阻抗匹配问题、便于大规模集成、可实现多维滤波等优点。
数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。
从广义讲,数字滤波是由计算机程序来实现的,是具有某种算法的数字处理过程。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
关键词: IIR 数字滤波器,MATLAB,仿真2AbstractDigital filter digital signal analysis is the most important part of digital filter and simulation filter, it is characterized by high precision and stability, system function to change, flexibility, high impedance matching problem does not exist, easy for large scale integrated, may realize the multidimensional filtering, etc. The role of digital filter is using discrete time the characteristics of the system of the input signal waveform (or spectrum) process, or using a digital method according to the requirements of the scheduled to signal transform. Broadly speaking, digital filter is by the computer program to realize, is has some kind of algorithm digital processing process.MATLAB is released by the American mathworks company mainly face of scientific calculation, visualization and interactive program design of the high-tech computing environment.It will numerical analysis, calculation , scientific data visualization and nonlinear dynamic system and simulation, and many other strong function integration in an easy to use Windows environment, for scientific research, engineering design, and to effectively the numerical calculation many fields of science provides a comprehensive solution, and to a large degree from the traditional the interactive programming language (such as C, Fortran) edit mode, which represents the current international scientific computing software advanced level.Keywords: IIR digital filters, MATLAB, the simulation31 绪论在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。
课 程 设 计20011 年 7月 1日 设计题目 学号专业班级 指导教师 学生姓名 张腾达 吴晔 陈丽娟 杨蕾通信电子电路课程设计 ——数字滤波器的设计 张静 光信息08-3班实验组员 张静 胡磊 艾永春 赵亚龙王宏道 胡进娟 马丽婷设计要求:某系统接收端接收到的信号为y=cos(2π*60t)+1.2cos(2π*140t)+2sin(2π*220t)+1.5sin(2π*300t)(A) 发现此信号夹杂了一个正弦噪声noise=1.5sin(2π*300t),请设计一个低通滤波器将此噪声滤除,从而恢复原信号。
(B) 发现此信号夹杂了一个正弦噪声noise= cos(2π*60t)+1.5sin(2π*300t) ,请设计一个带通滤波器将此噪声滤除,从而恢复原信号。
(C) 发现此信号夹杂了一个正弦噪声noise=1.2cos(2π*140t)+2sin(2π*220t),请设计一个带阻滤波器将此噪声滤除,从而恢复原信号。
(D) 发现此信号夹杂了一个正弦噪声noise= cos(2π*60t),请设计一个高通滤波器将此噪声滤除,从而恢复原信号。
要求:(1)请写出具体的MATLAB程序,并详细解释每条程序(2)画出滤波前后信号的频谱图(3)画出所设计滤波器的幅频和相频特性图,并写出具体参数参数计算:根据题目要求,开始选取Wp=2*60π,Ws=2*140π。
后来经老师指点,为了将阻带里的信号更好的滤除,通带里的信号更好的保持,达到较好的滤波效果,通带截止频率选取:Wp=2*70π>2*60π,阻带截止频率选取:Ws=2*120π<2*140π,输入信号为:y=cos(2π*60t)+1.2cos(2π*140t)+2sin(2π*220t)+1.5sin(2π*300t) 可知信号最高频率为2*300*π/(2π)=300Hz。
由奈奎斯特抽样定理得,fs>=2*300=600(Hz),这里为了得到更好的抽样效果,同时简化计算,选取fs=1000Hz。
matlab 切比雪夫带通滤波器实现
本文介绍如何使用matlab实现切比雪夫带通滤波器。
切比雪夫
滤波器是一种数字滤波器,可在给定的频率范围内阻止不需要的频率分量。
切比雪夫滤波器的特点在于它对幅频响应的最大偏差是可控的,因此被广泛地应用于信号处理、图像处理、通信等领域。
要在 matlab 中实现切比雪夫带通滤波器,需要先确定以下参数:通带频率范围、阻带频率范围、通带最大衰减度、阻带最小衰减度。
然后,使用 matlab 中提供的 cheb1ap 函数来计算切比雪夫滤波器
的传递函数。
具体步骤如下:
1. 确定通带频率范围、阻带频率范围、通带最大衰减度、阻带
最小衰减度,将这些参数赋值给对应的变量。
2. 使用 cheb1ap 函数计算切比雪夫滤波器的传递函数。
cheb1ap 函数的基本调用格式为 [n,wn]=cheb1ap(Wp,Ws,Rp,Rs),其中 Wp 和 Ws 分别是通带和阻带的归一化频率,Rp 和 Rs 分别是通
带最大衰减度和阻带最小衰减度。
函数返回的 n 和 wn 分别表示滤
波器的阶数和角频率。
3. 将传递函数转换为离散时间域上升通带滤波器的差分方程,
使用 tf2zp 函数将差分方程转换为零极点形式。
4. 使用 zp2sos 函数将零极点形式转换为二阶序列滤波器表示。
5. 使用 sosfilt 函数对信号进行滤波处理。
6. 将滤波结果可视化,比较滤波前后的信号,检查滤波效果。
使用 matlab 实现切比雪夫带通滤波器需要一定的数学基础和编程经验,但是掌握了这种滤波器的应用方法可以为信号处理和通信方面的工作提供很大的便利。
课 程 设 计20011 年 7月 1日 设计题目 学 号专业班级 指导教师 学生姓名 张腾达 吴晔 陈丽娟 杨蕾通信电子电路课程设计 ——数字滤波器的设计 张静 20080302 光信息08-3班实验组员 张静 胡磊 艾永春 赵亚龙王宏道 胡进娟 马丽婷设计要求:某系统接收端接收到的信号为y=cos(2π*60t)+1.2cos(2π*140t)+2sin(2π*220t)+1.5sin(2π*300t)(A) 发现此信号夹杂了一个正弦噪声noise=1.5sin(2π*300t),请设计一个低通滤波器将此噪声滤除,从而恢复原信号。
(B) 发现此信号夹杂了一个正弦噪声noise= cos(2π*60t)+1.5sin(2π*300t) ,请设计一个带通滤波器将此噪声滤除,从而恢复原信号。
(C) 发现此信号夹杂了一个正弦噪声noise=1.2cos(2π*140t)+2sin(2π*220t),请设计一个带阻滤波器将此噪声滤除,从而恢复原信号。
(D) 发现此信号夹杂了一个正弦噪声noise= cos(2π*60t),请设计一个高通滤波器将此噪声滤除,从而恢复原信号。
要求:(1)请写出具体的MATLAB程序,并详细解释每条程序(2)画出滤波前后信号的频谱图(3)画出所设计滤波器的幅频和相频特性图,并写出具体参数参数计算:根据题目要求,开始选取Wp=2*60π,Ws=2*140π。
后来经老师指点,为了将阻带里的信号更好的滤除,通带里的信号更好的保持,达到较好的滤波效果,通带截止频率选取:Wp=2*70π>2*60π,阻带截止频率选取:Ws=2*120π<2*140π,输入信号为:y=cos(2π*60t)+1.2cos(2π*140t)+2sin(2π*220t)+1.5sin(2π*300t) 可知信号最高频率为2*300*π/(2π)=300Hz。
由奈奎斯特抽样定理得,fs>=2*300=600(Hz),这里为了得到更好的抽样效果,同时简化计算,选取fs=1000Hz。
[Matlab]切⽐雪夫Ⅰ型滤波器设计:低通、⾼通、带通和带阻切⽐雪夫Ⅰ型滤波器特点:1、幅度特性是在⼀个频带内(通带或阻带)范围内具有等波纹特性;2、Ⅰ型在通带范围内是等波纹的,在阻带范围内是单调的。
测试代码:% Cheby1Filter.m% 切⽐雪夫Ⅰ型滤波器的设计%clear;close all;clc;fs = 1000; %Hz 采样频率Ts = 1/fs;N = 1000; %序列长度t = (0:N-1)*Ts;delta_f = 1*fs/N;f1 = 50;f2 = 100;f3 = 200;f4 = 400;x1 = 2*0.5*sin(2*pi*f1*t);x2 = 2*0.5*sin(2*pi*f2*t);x3 = 2*0.5*sin(2*pi*f3*t);x4 = 2*0.5*sin(2*pi*f4*t);x = x1 + x2 + x3 + x4; %待处理信号由四个分量组成X = fftshift(abs(fft(x)))/N;X_angle = fftshift(angle(fft(x)));f = (-N/2:N/2-1)*delta_f;figure(1);subplot(3,1,1);plot(t,x);title('原信号');subplot(3,1,2);plot(f,X);grid on;title('原信号频谱幅度特性');subplot(3,1,3);plot(f,X_angle);title('原信号频谱相位特性');grid on;%设计⼀个切⽐雪夫低通滤波器,要求把50Hz的频率分量保留,其他分量滤掉wp = 55/(fs/2); %通带截⽌频率,取50~100中间的值,并对其归⼀化ws = 90/(fs/2); %阻带截⽌频率,取50~100中间的值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 40;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N1 wc1 ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N1,alpha_p,wc1,'low');%滤波filter_lp_s = filter(b,a,x);X_lp_s = fftshift(abs(fft(filter_lp_s)))/N;X_lp_s_angle = fftshift(angle(fft(filter_lp_s)));figure(2);freqz(b,a); %滤波器频谱特性figure(3);subplot(3,1,1);plot(t,filter_lp_s);grid on;title('低通滤波后时域图形');subplot(3,1,2);plot(f,X_lp_s);title('低通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_lp_s_angle);title('低通滤波后频域相位特性');%设计⼀个⾼通滤波器,要求把400Hz的频率分量保留,其他分量滤掉wp = 350/(fs/2); %通带截⽌频率,取200~400中间的值,并对其归⼀化ws = 380/(fs/2); %阻带截⽌频率,取200~400中间的值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N2 wc2 ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N2,alpha_p,wc2,'high');%滤波filter_hp_s = filter(b,a,x);X_hp_s = fftshift(abs(fft(filter_hp_s)))/N;X_hp_s_angle = fftshift(angle(fft(filter_hp_s)));figure(4);freqz(b,a); %滤波器频谱特性figure(5);subplot(3,1,1);plot(t,filter_hp_s);grid on;title('⾼通滤波后时域图形');subplot(3,1,2);plot(f,X_hp_s);title('⾼通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_hp_s_angle);title('⾼通滤波后频域相位特性');%设计⼀个带通滤波器,要求把50Hz和400Hz的频率分量滤掉,其他分量保留wp = [65 385 ] / (fs/2); %通带截⽌频率,50~100、200~400中间各取⼀个值,并对其归⼀化ws = [75 375 ] / (fs/2); %阻带截⽌频率,50~100、200~400中间各取⼀个值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N3 wn ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N3,alpha_p,wn,'bandpass');%滤波filter_bp_s = filter(b,a,x);X_bp_s = fftshift(abs(fft(filter_bp_s)))/N;X_bp_s_angle = fftshift(angle(fft(filter_bp_s)));figure(6);freqz(b,a); %滤波器频谱特性figure(7);subplot(3,1,1);plot(t,filter_bp_s);grid on;title('带通滤波后时域图形');subplot(3,1,2);plot(f,X_bp_s);title('带通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_bp_s_angle);title('带通滤波后频域相位特性');%设计⼀个带阻滤波器,要求把50Hz和400Hz的频率分量保留,其他分量滤掉wp = [65 385 ] / (fs/2); %通带截⽌频率?,50~100、200~400中间各取⼀个值,并对其归⼀化ws = [75 375 ] / (fs/2); %阻带截⽌频率?,50~100、200~400中间各取⼀个值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N4 wn ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N4,alpha_p,wn,'stop');%滤波filter_bs_s = filter(b,a,x);X_bs_s = fftshift(abs(fft(filter_bs_s)))/N;X_bs_s_angle = fftshift(angle(fft(filter_bs_s)));figure(8);freqz(b,a); %滤波器频谱特性figure(9);subplot(3,1,1);plot(t,filter_bs_s);grid on;title('带阻滤波后时域图形');subplot(3,1,2);plot(f,X_bs_s);title('带阻滤波后频域幅度特性');subplot(3,1,3);plot(f,X_bs_s_angle);title('带阻滤波后频域相位特性');效果:原始信号:⽣成的低通滤波器和滤波后的效果:⽣成的⾼通滤波器和滤波后的结果:⽣成的带通滤波器和滤波后的结果:⽣成的带阻滤波器和滤波后的结果:。
摘要在进行DSP系统设计时,往往先采用MATLAB软件等对算法进行仿真,确定最佳算法和参数。
利用MATLAB勺信号处理工具箱可以直接设计数字滤波器,也可以建立模拟原型,离散化设计数字滤波器。
本文介绍了IIR数字带通滤波器的设计原理、步骤以及在MATLAB中勺实现方法,并能应用到实际勺信号处理中。
关键词:IIR 数字滤波器,数字信号处理(DSP), MATLAB仿真AbstractWhen the DSP system is designed, we often simulate the algorithm and decide the best algorithm and parameters on the MATLAB software. We can design a digital filter either using the MATLAB Toolbox directly or creating a analog filter prototype and scatering the digital filter. This paper introduces the design principle of IIR digital bandpass filter, the steps as well as the methods in MATLAB ,and it also can be applied to the actual signal processing.Key words: IIR digital filters, Digital signal processing (DSP), MATLAB, Simulation目录摘要 (I)ABSTRACT (II)1 绪论 (1)2 IIR 数字滤波器设计的原理与方法 (1)2.1 IIR 数字滤波器设计的原理 (1)2.2 IIR 数字滤波器设计的基本方法 (3)3 IIR 带通滤波器的MATLAB设计 (3)3.1IIR 带通滤波器的设计流程 (4)3.2IIR 带通滤波器的设计步骤 (5)4 IIR 带通滤波器的仿真结果及波形 (8)5 IIR 带通滤波器的仿真结果分析 (9)6 总结 (11)参考文献 (13)附录:原程序 (14)Matlab 课程设计——双线性变换法设计数字切比雪夫带通IIR 滤波器1 绪论在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。
matlab 切比雪夫带通滤波器实现带通滤波器是一种常见的数字信号处理技术,它可用于提取目标频率段内的信号,滤除无用频率段内的干扰信号。
在数字信号处理领域中,存在着多种带通滤波器的实现方式,而切比雪夫带通滤波器是其中一种方法。
切比雪夫带通滤波器与其他滤波器不同之处在于,它能够提供更为陡峭的通带和阻带边缘。
这是由于它声称的Chebyshev响应函数,其中的“Chebyshev”指的是切比雪夫多项式。
切比雪夫滤波器将极陡峭的边缘带给了滤波器,以便按照严格的信号频率进行过滤。
切比雪夫滤波器的设计,需要知道带通滤波器的通带上限fc,下限fc’,以及有选择性地保留其特定频率范围内的信号。
为了从信号中切除这些频率外的信息,切比雪夫设计要求用户指定这些频率范围的阻带跨越带宽bw,以及在通带中允许的最大衰减或输出变弱的增益tol_db。
为了设计一个切比雪夫带通滤波器,我们需要首先输入所需的频率截止值和带宽,然后计算其非标准化参数,最终,选择适当的滤波器阶数进行计算,生成相应的滤波器系数。
Matlab中可以使用signal库中的函数设计切比雪夫带通滤波器,具体步骤如下:1.输入所需的通带上限fc、下限fc’,以及阻带跨越带宽bw和允许的最大衰减或输出变弱的增益tol_db。
2.计算非标准化参数epsilon,并将其应用于滤波器阶数N的计算。
3.使用design()函数和signal.fir1()函数找到设计参数N和alpha。
4.通过signal.fir1()函数生成切比雪夫带通滤波器系数。
例如,以下代码可实现一个带有通带上限50Hz和下限20Hz,阻带跨越带宽10Hz和最大衰减40dB的切比雪夫带通滤波器:fc1 = 20;fc2 = 50;fs = 200;bw = 10;tol_db = 40;%计算非标准化参数epsilondelta_omega_p = 2*pi*bw/fs;delta_omega_s1 = 2*pi*(fc1-bw/2)/fs;delta_omega_s2 = 2*pi*(fc2+bw/2)/fs;epsilon = sqrt(10^(tol_db/10)-1);A =log10((1/epsilon)+sqrt(1+(1/epsilon)^2))/log10(1/delta_omega_ p);%求滤波器阶数和alpha[N, alpha] = cheb1ord(delta_omega_p, delta_omega_s2,tol_db, tol_db);%通过signal.fir1()函数生成切比雪夫带通滤波器系数h = fir1(N, [delta_omega_s1 delta_omega_s2]/(2*pi),'bandpass', chebwin(N+1, alpha));使用这个滤波器可以滤除一些干扰信号,保留20Hz到50Hz之间的信号,得到目标带通信号。
matlab 切比雪夫带通滤波器实现
本文将介绍如何使用MATLAB实现切比雪夫带通滤波器。
切比雪夫带通滤波器是一种数字滤波器,用于将一定范围内的频率信号从输入信号中滤除。
使用 MATLAB 对信号进行数字滤波可以得到更加精确的结果,并且可以方便地进行可视化分析。
步骤:
1. 定义需要滤波的信号。
可以使用 MATLAB 自带的信号生成函数,如 sin、cos 等,也可以导入自己的信号数据。
2. 定义切比雪夫带通滤波器的参数。
主要包括通带频率、阻带频率、通带最大衰减、阻带最小衰减等。
3. 使用 MATLAB 自带的函数 butter 设计数字滤波器。
其中,第一个参数为滤波器的阶数,第二个参数为通带或阻带的频率,第三个参数为滤波器类型,可以选择带通、带阻、低通或高通等。
4. 使用设计好的滤波器对输入信号进行滤波。
可以使用MATLAB 自带的函数 filter 实现。
5. 对滤波后的信号进行可视化展示。
可以使用 MATLAB 自带的绘图函数 plot 进行绘制。
6. 分析滤波效果。
通过观察滤波后的信号波形和频谱图,可以评估滤波器的效果是否符合要求。
总之,使用 MATLAB 实现切比雪夫带通滤波器可以帮助我们更加精确地处理信号,并且可以通过可视化手段来分析滤波效果。
- 1 -。
开始↓读入数字滤波器技术指标↓将指标转换成归一化模拟低通滤波器的指标↓设计归一化的模拟低通滤波器阶数N 和截止频率↓模拟域频率变换,将H(P)变换成模拟带通滤波器H(s)↓用双线性变换法将H(s)转换成数字带通滤波器H(z)↓输入信号后显示相关结果求相应的幅频响应与相频响应↓50100150-202tx 1(t )x1的波形50100150-202tx 2(t )x2的波形50100150-202t x (t )输入信号x 的波形10203040-0.01-0.00500.0050.01ty滤波器输出y 的波形clc;clear all ;结束%数字滤波器的技术指标Rp = 1; % 通带最大衰减Rs = 40;% 阻带最小衰减OmegaS1_1=350; % 通带截止频率OmegaS1_2=550;% 通带截止频率OmegaP1_1=400; % 阻带截止频率OmegaP1_2=500;% 阻带截止频率Fp=2000; % 抽样频率Wp1=2*pi*OmegaP1_1/Fp; % 模数频率变换Wp2=2*pi*OmegaP1_2/Fp;Ws1=2*pi*OmegaS1_1/Fp;Ws2=2*pi*OmegaS1_2/Fp;OmegaP1=2*Fp*tan(Wp1/2); % 非线性变换OmegaP2=2*Fp*tan(Wp2/2); % 非线性变换OmegaS1=2*Fp*tan(Ws1/2); % 非线性变换OmegaS2=2*Fp*tan(Ws2/2); % 非线性变换OmegaP0=sqrt(OmegaP1*OmegaP2);% 等效中心频率Bw=OmegaP2-OmegaP1; % 带通滤波器的通带宽度Eta_P0=OmegaP0/Bw; % 归一化处理Eta_P1=OmegaP1/Bw; % 归一化处理Eta_P2=OmegaP2/Bw; % 归一化处理Eta_S1=OmegaS1/Bw; % 归一化处理Eta_S2=OmegaS2/Bw; % 归一化处理Lemta_P_EquivalentLowPass=Eta_P2/(Eta_P2^2-Eta_P0^2); % 转换成低通参数Lemta_S1_EquivalentLowPass=-Eta_S1/(Eta_S1^2-Eta_P0^2); % 转换成低通参数Lemta_S2_EquivalentLowPass=Eta_S2/(Eta_S2^2-Eta_P0^2); % 转换成低通参数Lemta_S_EquivalentLowPass=min(Lemta_S1_EquivalentLowPass,Lemta_S2 _EquivalentLowPass); % 取最小值% E求滤波器阶数[N, Wn]=cheb2ord(Lemta_P_EquivalentLowPass, Lemta_S_EquivalentLowPass, Rp, Rs,'s');% 滤波器设计[num1,den1]=cheby2(N,Rs,Wn,'s');[num2,den2]=lp2bp(num1,den1,OmegaP0,Bw);[num,den]=bilinear(num2,den2,Fp);[Z,P,K]=cheb1ap(N,Rp);w=linspace(1,1000,100)*2*pi;[M1,N1]=zp2tf(Z,P,K); %将零极点形式转换为传输函数形式[M,N]=lp2bp(M1,N1,OmegaP0,Bw); %对低通滤波器进行频率变换转换为带通滤波器% 计算增益响应w = 0:pi/255:pi;h = freqz(num,den,w);g = 20*log10(abs(h));%绘制切比雪夫带通滤波器幅频特性figure;plot(w/pi,g);gridaxis([0 1 -60 5]);xlabel('\频率/\pi'); ylabel('增益/dB'); title('切比雪夫II型带通滤波器幅频响应');%Plot the poles and zeros[z,p,k]=tf2zp(num,den);figure;zplane(z,p); %绘制传输函数零极点title('?传输函数的零极点')f1=450;f2=600;t=0:0.0001:1x1=sin(2*pi*f1*t);x2=sin(2*pi*f2*t);x=x1+x2;figure;subplot(2,2,1)%绘制x1的波形plot(x1);grid on;axis([0,50*pi,-3,3]);xlabel('t');ylabel('x1(t)');title('x1的波形');subplot(2,2,2)%绘制x2的波形plot(x2);grid on;axis([0,50*pi,-3,3]);xlabel('t');ylabel('x2(t)');title('x2的波形');subplot(2,2,3)%绘制输入x的波形plot(x);grid on;axis([0,50*pi,-3,3]);xlabel('t');ylabel('x(t)');title('输入信号x的波形')%X=fft(x);y=filter(num,den,x);%数字滤波器输出subplot(2,2,4);plot(real(y));grid on;axis([0,15*pi,-0.01,0.01]);xlabel('t');ylabel('y');title('滤波器输出y的波形');附录:PPpppp5. 用双线性变换法设计IIR数字带通滤波器例21-3采用双线性变换法设计一个切比雪夫Ⅰ型数字带通滤波器,要求:通带wp1=0.3p,wp2=0.7p,Rp=1 dB;阻带ws1=0.2p,ws2=0.8p,As=20 dB解程序如下:wp1=0.4*pi;wp2=0.5*pi;ws1=0.35*pi;ws2=0.55*pi;Rp=1;As=40;T=0.0005;Fs=1/T;Omgp1=(2/T)*tan(wp1/2);Omgp2=(2/T)*tan(wp2/2);Omgp=[Omgp1,Omgp2];Omgs1=(2/T)*tan(ws1/2);Omgs2=(2/T)*tan(ws2/2);Omgs=[Omgs1,Omgs2];bw=Omgp2-Omgp1;w0=sqrt(Omgp1*Omgp2);bw=Omgs2-Omgs1;w0=sqrt(Omgs1*Omgs2); %[ZK(]模拟滤波器阻带带宽和中心频率[n,Omgn]=cheb2ord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率[z0,p0,k0]=cheb2ap(n,As); %设计归一化的模拟原型滤波器[n,Omgn]=cheb1ord(Omgp,Omgs,Rp,As,'s')[z0,p0,k0]=cheb1ap(n,Rp);ba1=k0*real(poly(z0));aa1=real(poly(p0));[ba,aa]=lp2bp(ba1,aa1,w0,bw);[bd,ad]=bilinear(ba,aa,Fs)[H,w]=freqz(bd,ad);dbH=20*log10((abs(H)+eps)/max(abs(H)));subplot(2,2,1),plot(w/2/pi*Fs,abs(H),'k');ylabel('|H|');title('幅度响应');axis([0,Fs/2,0,1.1]);set(gca,'XTickMode','manual','XTick',[0,fs,fp,Fs/2]);set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);gridsubplot(2,2,2),plot(w/2/pi*Fs,angle(H)/pi*180,'k');ylabel('\phi');title('相位响应');axis([0,Fs/2,-180,180]);set(gca,'XTickMode','manual','XTick',[0,fs,fp,Fs/2]);set(gca,'YTickMode','manual','YTick',[-180,0,180]);gridsubplot(2,2,3),plot(w/2/pi*Fs,dbH);title('幅度响应( dB)');axis([0,Fs/2,-40,5]);ylabel('dB');xlabel('频率(\pi)');set(gca,'XTickMode','manual','XTick',[0,fs,fp,Fs/2]);set(gca,'YTickMode','manual','YTick',[-50,-20,-1,0]);gridsubplot(2,2,4),zplane(bd,ad);axis([-1.1,1.1,-1.1,1.1]);title('零极图');程序运行结果如下:n = 3Omgn =1.0e+003 * 1.0191 3.9252bd =0.0736 0.0000 -0.2208 0.0000 0.2208 -0.0000 -0.0736ad =1.0000 0.0000 0.9761 0.0000 0.8568 0.0000 0.2919 采用双线性变换法设计一个切比雪夫Ⅱ型数字带通滤波器,其它条件不变,则需要修改下面几句程序:bw=Omgs2-Omgs1;w0=sqrt(Omgs1*Omgs2); %[ZK(]模拟滤波器阻带带宽和中心频率[n,Omgn]=cheb2ord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率[z0,p0,k0]=cheb2ap(n,As); %设计归一化的模拟原型滤波器采用阻带截止频率来计算W0和BW,是因为切比雪夫Ⅱ型模拟低通原型是以阻带衰减As为主要设计指标的。
中北大学课程设计说明书学生姓名:学号:学院:信息与通信工程学院专业:电子信息工程题目:信息处理信息实践:信号的产生与带通滤波器的设计指导教师:职称:2016 年1 月4 日中北大学课程设计任务书2015/2016 学年第一学期学院:信息与通信工程学院专业:电子信息工程学生姓名:学生姓名:学号:学生姓名:学号:课程设计题目:信息处理信息实践:信号的产生与带通滤波器的设计起迄日期:2016年1月4日~2016年1月22日课程设计地点:学院楼201实验室指导教师:王玉下达任务书日期: 2016 年1月4 日课程设计任务书课程设计任务书目录一基于USB总线A/D卡的报告 (1)B总线介绍 (1)B接口电路设计 (1)B接口的数据采集系统的设计实现 (1)4.A/D转换电路 (2)5.A/D采集卡的应用 (2)二设计内容 (3)三设计原理 (3)四MATLAB软件介绍 (4)五设计过程 (5)1.信号的产生 (5)2.对连续输入信号进行采样,进行频谱分析 (7)3.切比雪夫带通滤波器 (8)4.对信号进行滤波 (10)六结果分析 (12)七心得体会及总结 (13)参考文献 (13)附录:总程序代码 (15)一基于USB总线A/D卡的报告B总线介绍通用串行总线标准USB是1995年微软、康柏、DEC、IBM等公司为解决传统总线不足的问题而推出的一种新型通信标准。
该标准具有高带宽、安装方便、易扩展诸多优点,逐渐成为现代数据传输的主要手段。
基于USB数据采集卡充拥有USB总线的上述优点,有效优化解决传统数据采集卡的安装麻烦、扩展不便等弊端。
USB总线为通用串行总线,USB接口位于PS/2接口和串并口之间,允许外设在开机状态下热插拔,最多可串接下来127个外设,传输速率可达480Mb/S,P它可以向低压设备提供5伏电源,同时可以减少PC机I/O接口数量。
USB是基于通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展PC连接外设范围的目的。
B接口电路设计图1 电路设计如图1所示,R3是上拉电阻器,它可使USB口的D+端上拉到DS2490S 的VB端,表示USB主机系统是高速设备,同时这个上拉电阻器告诉主机有USB 设备插入。
该上拉电阻器的设置对适配器的影响很大,它的负载值和1-Wire网络的总长决定1-Wire总线电压上升到5 V的速度。
经过实验测试选择R3的阻值为27Ω±lO%。
R1、R2为USB数据线保护电阻器。
L、L2具有禁止高频干扰并且减弱EMI辐射的功能。
LF33CV为3.3 V电压稳压器,与周围元件C1、C2组成强上拉部分,给EEPROM或温度传感器等器件提供额外的电源。
B接口的数据采集系统的设计实现数据采集系统使用采集卡进行数据采集,然后经过A/D转换器供计算机加工处理。
基于USB接口的数据采集与频谱分析系统本系统结构由硬件部分和软件部分组成,硬件部分主要有计算机、I/O接口设备。
计算机作为硬件平台的核心可采用台式机,系统采用的I/O设备为A/D数据采集卡,该采集卡是一种基于USB 总线数据采集产品,可与带USB接口的各种台式计算机、笔记本电脑、工控机连接构成高性能的数据采集测量系统.整个系统主要由4部分组成:USB接口芯片及外围电路、控制电路、数据缓冲电路和A/D转换电路。
USB接口芯片选择了Cypress公司的EZ-USB 2131Q,该芯片内嵌8051控制器,因此整个系统以EZ-USB控制器为核心,由EZ-USB经控制电路实现对A/D转换电路和数据缓冲电路的控制,模拟信号转换后的数据送入数据缓冲器,当数据缓冲器存满之后,通知EZ-USB控制器,由主机取出数据。
整个系统框图如图2所示。
图2系统框图4.A/D转换电路A/D转换芯片采用了MAXIM公司的MAX122,芯片是12b的高速的A/D转换器。
在完全转换模式下,他的转换时间可以达到2.6μs,采样率为333kS/s。
MAX122有5种工作模式,在数据采集系统中,采用了模式2即连续转换模式。
在这种模式下,每次转换需要13~14个时钟脉冲节拍,转换可以不间断地进行,但是需要提供开始转换使能信号,并且要保证使能信号和时钟信号同步,读信号和片选始终处于有效状态。
数据输出使能信号一直有效,在转换结束时产生新的数据。
5.A/D采集卡的应用数据采集就是把来自各种传感器的信号数据实时地、准确地测量或汇集起来,用计算机进行实时处理或记录存储,实时完成测试和控制功能。
数据采集系统结构通过微机的标准接口连接各种功能模块、仪器仪表和传感器,组成测量系统。
数据采集监测技术已成为日益重要的检测技术,广泛应用于需要监控湿度、温度、压力等工农业中。
数据采集过程是工业控制等系统中的重要过程,通常主要采用一些功能独立的单片机系统来采集,是测控系统不可缺少的一部分,因为数据采集的性能特点直接影响到整个系统的稳定性。
在生产过程中这一系统可对现场的工艺参数进行监视、采集以及记录,从而提高产品质量,提供信息和手段,降低生产成本。
而在科学研究中应用该系统可以获得大量动态然后研究瞬间物理过程,也成为获取科学奥秘重要手段之一。
总之,无论在哪个领域,数据采集系统应用的越及时,工作效率就愈高,获得经济利益就愈大,这是毋庸置疑的。
二设计内容产生三种不同频率的正弦信号并叠加,通过FFT变换得到频域图;并设计在200-300Hz的带通滤波器,并进行频谱分析;再对合成信号进行滤波,对滤波前后信号进行对比。
三设计原理1.利用MATLAB软件产生三个连续信号,并对三个连续信号进行合成。
2.对信号进行抽样,进行频谱分析。
(1)时域采样(奈奎斯特采样)定理:为了避免产生混叠现象,能从抽样信号无失真地恢复出原信号,抽样频率必须大于或等于信号频谱最高频率的两倍。
本设计中信号最高频率是500Hz,抽样频率采用2000Hz。
(2)频谱分析:频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。
3.带通滤波器滤波的设计现代生活中,为了滤除谐波干扰,获得所需要的高精度的模拟信号,经常要用到滤波器对信号进行滤波。
典型的模拟滤波器有巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器和椭圆(Ellipse)滤波器等。
其中,巴特沃斯滤波器又叫最平坦响应滤波器,顾名思义,它的响应最为平坦,通带内没有波纹,其频率响应在通带和阻带中都是单调的,且在靠近零频处最平坦,而在趋向阻带时衰减单调增大,巴特沃斯响应能够最大化滤波器的通带平坦度。
该响应非常平坦,非常接近DC信号,然后慢慢衰减至截止频率点为-3dB,最终逼近-20ndB/decade的衰减率,其中n为滤波器的阶数。
切比雪夫滤波器在过渡带比巴特沃斯滤波器的衰减快,但频率响应的幅频特性不如后者平坦。
切比雪夫滤波器和理想滤波器的频率响应曲线之间的误差最小,但是在通频带内存在幅度波动。
本次课程设计将使用切比雪夫1型带通滤波器对信号进行滤波。
滤波器的结构框图如下图3所示:图3 滤波器的结构框图四MATLAB软件介绍MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。
在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。
MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。
与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。
MATLAB因其提供计算、图形、文字处理的统一环境而深受欢迎。
MTALAB系统由五个主要部分组成,下面分别加以介绍。
(1)MATALB语言是高层次的矩阵/数组语言。
具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。
利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。
(2)MATLAB工作环境这是对MATLAB提供给用户使用的管理功能的总称。
包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M 文件的各种工具。
(3)MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。
(4)MATLAB数学函数库这是对MATLAB使用的各种数学算法的总称。
包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。
(5)MATLAB应用程序接口(API)这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或Fortran程序,包括从MATLAB 中调用于程序(动态链接),读写MAT文件的功能。
可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。
五设计过程1.信号的产生首先产生一个连续输入信号,包含低频(f=30Hz),中频(f=250Hz),高频(f=500Hz)分量,并实现三个信号的合成。
(1)程序代码f1=30;f2=250;f3=500; %产生三种频率t=(1:100)/2000;x1=sin(2*pi*t*f1);figure(1);subplot(2,1,1);plot(x1); %绘制x1(t)的图形xlabel('t');ylabel('x1(t)');title('低频信号');grid;x2=sin(2*pi*t*f2);subplot(2,1,2);plot(x2); %绘制x2(t)的图形xlabel('t');ylabel('x2(t)');title('中频信号');grid;x3=sin(2*pi*t*f3);figure(2);subplot(2,1,1);plot(x3); %绘制x3(t)的图形xlabel('t');ylabel('x3(t)');title('高频信号');grid;x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);%实现三种信号的叠加subplot(2,1,2);plot(x); %绘制x(t)的图形xlabel('t');ylabel('x(t)');title('合成信号');grid;(2)程序运行结果如图4、图5所示图4 低频中、频信号波形图图5 高频、合成信号波形图(3)结果分析图4、5所示内容为按照设计要求作出的三种频率分量以及合成信号。