matlab设计低通滤波器

合集下载

MATLAB低通滤波器的设计代码

MATLAB低通滤波器的设计代码

单位冲激响应及其幅频响应及其代码单位冲激响应的绘制思路比较简单,就是将一条直线用stem函数绘制出来,其图形必须为23个点。

其代码如下:n=0:22;x=n./n;stem(n,x); title('h(n)');axis([0,25,0,1.3]);单位冲激响应的幅频响应要用到专门的函数m文件。

该函数文件可以在主程序中调用多次,节省篇幅。

函数m文件代码如下:function xk=dft(xn,N)n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;xk=xn* WNnk;不同窗函数低通幅频响应对比模块窗函数不同,会对设计出的低通滤波器的性能不同。

应尽量选取旁瓣小主瓣窄的窗函数。

为了细致观察窗函数不同对设计的低通滤波器的不同影响,本次试验中设计了不同窗函数的低通滤波器的比较环节。

各个窗函数设计低通滤波器的思路是相似的,只是其中的窗函数是不同的。

用矩形窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string'));wn=D*pi;N=23;b=fir1(N,wn,boxcar(N+1));[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0);title('矩形窗');用汉明窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string'));wn=D*pi;N=23;b=fir1(N,wn);[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)title('汉明窗');用三角窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string'));wn=D*pi;N=23;b=fir1(N,wn,triang(N+1));[w,t]=freqz(b,1,512);axis([0,3.5,0,1.5]);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)axis([0,3.5,0,1.4]);title('三角窗');用汉宁窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string')); wn=D*pi;N=23;b=fir1(N,wn,hanning(N+1));[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)title('汉宁窗');用布莱克曼窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string')); wn=D*pi;N=23;b=fir1(N,wn,blackman(N+1));[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)title('布莱克曼窗');用凯泽窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string')); wn=D*pi;N=23;b=fir1(N,wn,kaiser(N+1));[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)title('凯泽窗');。

计算机视觉(二)-matlab之理想低通滤波器,布特沃斯低通、高斯低通,理想高通、布特沃斯。。。

计算机视觉(二)-matlab之理想低通滤波器,布特沃斯低通、高斯低通,理想高通、布特沃斯。。。

计算机视觉(⼆)-matlab之理想低通滤波器,布特沃斯低通、⾼斯低通,理想⾼通、布特沃斯。

未整理完!在滤波器之前,先讲解傅⾥叶变换理想低通滤波器f = imread('Fig0441.tif');f = im2double(f);% 计算填充图像⼤⼩[M,N] = size(f);M2 = 2*M;N2 = 2*N;% 傅⾥叶变换F = fftshift(fft2(f,M2,N2));figure;imshow(mat2gray(log(1+abs(F))));title('傅⾥叶频谱');% 设计滤波器% ⽣成⽹格坐标u = -N:N-1;v = -M:M-1;[U,V] = meshgrid(u,v);% 设计滤波器D = hypot(U,V);D0 = 30; % 截⽌频率[10 30 60 160 460]H = mat2gray( D <= D0 );% 理想低通滤波器figure;imshow(H);title('理想低通滤波器');% 频域滤波G = F.*H;figure;imshow(mat2gray(log(1+abs(G))));title('频域滤波'); 1-sum(sum(abs(G).^2))/sum(sum(abs(F).^2))g0 = ifft2(fftshift(G));g = g0(1:M,1:N);g = real(g);figure;imshow(g);title('滤波后的图像');figure;subplot(121);imshow(f);title('原图');subplot(122);imshow(g);title('滤波后的图像');结果:原图:布特沃斯低通滤波器f = imread('Fig0441.tif');f = im2double(f);% 计算填充图像⼤⼩[M,N] = size(f);M2 = 2*M;N2 = 2*N;% 傅⾥叶变换F = fftshift(fft2(f,M2,N2));figure;imshow(mat2gray(log(1+abs(F))));title('傅⾥叶频谱'); % 设计滤波器% ⽣成⽹格坐标u = -N:N-1;v = -M:M-1;[U,V] = meshgrid(u,v);% 设计滤波器D = hypot(U,V);D0 = 30; % 截⽌频率[10 30 60 160 460]H = mat2gray(1./(1+((D./D0).^4)));figure;imshow(H);title('布特沃斯低通滤波器(n=2)');% 频域滤波G = F.*H;figure;imshow(mat2gray(log(1+abs(G))));title('频域滤波'); 1-sum(sum(abs(G).^2))/sum(sum(abs(F).^2))g0 = ifft2(fftshift(G));g = g0(1:M,1:N);g = real(g);figure;imshow(g);title('滤波后的图像');figure;subplot(121);imshow(f);title('原图');subplot(122);imshow(g);title('滤波后的图像'); matlab结果:⾼斯低通滤波器⾼斯低通滤波器代码:H = exp((-D.^2)/(2*(D0).^2));figure;imshow(H);title('滤波器(D0=100)');结果:理想⾼通滤波器理想⾼通滤波器代码:H = mat2gray( D >= D0 );%理想⾼通滤波器figure;imshow(H);title('滤波器()');结果:布特沃斯⾼通滤波器布特沃斯⾼通滤波器代码:H = 1./(1+((D0./D).^4));%布特沃斯⾼通滤波器figure;imshow(H);title('滤波器(n=2)');结果:⾼斯⾼通滤波器⾼斯⾼通滤波器代码:H = 1-exp((-D.^2)/(2*(D0).^2));%⾼斯⾼通滤波器figure;imshow(H);title('滤波器');matlab结果:混合⾼频强调滤波[file,path] = uigetfile({'*.png';'*.jpg';},'选择图⽚');f = imread([path,file]);f = im2double(f);%计算填充图像⼤⼩[M,N] = size(f);M2 = 2*M;N2 = 2*N;% 傅⾥叶变换F = fftshift(fft2(f,M2,N2));figure;imshow(mat2gray(log(1+abs(F))));title('傅⾥叶频谱'); % 设计滤波器% ⽣成⽹格坐标u = -N:N-1;v = -M:M-1;[U,V] = meshgrid(u,v);% 设计滤波器D = hypot(U,V);D0 = 40; %截⾄频率[10 30 60 160 460]H = 1-exp((-D.^2)/(2*(D0).^2));%¸⾼斯⾼通滤波G = (F.^(-1)).*((0.5+0.75.*H).*F);%figure;imshow(H);title('滤波器');figure;imshow(mat2gray(log(1+abs(G))));title('频率滤波'); % 傅⾥叶逆变换g0 = ifft2(fftshift(G));g = g0(1:M,1:N);g = real(g);i=histeq(g);figure;imshow(g);title('滤波后的图像');figure;imshow(i);title('直⽅图均衡');结果:原图:reference:李卫军,肖宛昂,董肖莉,覃鸿⽼师《视觉信息处理及FPGA 实现》课程等越是憧憬,越要风⾬兼程。

Matlab中的多种滤波器设计方法介绍

Matlab中的多种滤波器设计方法介绍

Matlab中的多种滤波器设计方法介绍引言滤波器是数字信号处理中常用的工具,它可以去除噪声、改善信号质量以及实现其他信号处理功能。

在Matlab中,有许多不同的滤波器设计方法可供选择。

本文将介绍一些常见的滤波器设计方法,并详细说明它们的原理和应用场景。

一、FIR滤波器设计1.1 理想低通滤波器设计理想低通滤波器是一种理论上的滤波器,它可以完全去除截止频率之上的频率分量。

在Matlab中,可以使用函数fir1来设计理想低通滤波器。

该函数需要指定滤波器阶数及截止频率,并返回滤波器的系数。

但是,由于理想低通滤波器是非因果、无限长的,因此在实际应用中很少使用。

1.2 窗函数法设计为了解决理想滤波器的限制,窗函数法设计了一种有限长、因果的线性相位FIR滤波器。

该方法利用窗函数对理想滤波器的频率响应进行加权,从而得到实际可用的滤波器。

在Matlab中,可以使用函数fir1来实现窗函数法设计。

1.3 Parks-McClellan算法设计Parks-McClellan算法是一种优化设计方法,它可以根据指定的频率响应要求,自动选择最优的滤波器系数。

在Matlab中,可以使用函数firpm来实现Parks-McClellan算法。

二、IIR滤波器设计2.1 Butterworth滤波器设计Butterworth滤波器是一种常用的IIR滤波器,它具有平坦的幅频响应,并且在通带和阻带之间有宽的过渡带。

在Matlab中,可以使用函数butter来设计Butterworth滤波器。

2.2 Chebyshev滤波器设计Chebyshev滤波器是一种具有较陡的滚降率的IIR滤波器,它在通带和阻带之间有一个相对较小的过渡带。

在Matlab中,可以使用函数cheby1和cheby2来设计Chebyshev滤波器。

2.3 Elliptic滤波器设计Elliptic滤波器是一种在通带和阻带上均具有较陡的滚降率的IIR滤波器,它相较于Chebyshev滤波器在通带和阻带上都具有更好的过渡特性。

基于matlab对图像进行高通、低通、带通滤波

基于matlab对图像进行高通、低通、带通滤波

数字图像处理三级项目—高通、低通、带通滤波器摘要在图像处理的过程中,消除图像的噪声干扰是一个非常重要的问题。

利用matlab软件,采用频域滤波的方式,对图像进行低通和高通滤波处理。

低通滤波是要保留图像中的低频分量而除去高频分量,由于图像中的边缘和噪声都对应图像傅里叶频谱中的高频部分,所以低通滤波可以除去或消弱噪声的影响并模糊边缘轮廓;高通滤波是要保留图像中的高频分量而除去低频分量,所以高通滤波可以保留较多的边缘轮廓信息。

低通滤波器有巴特沃斯滤波器和高斯滤波器等等,本次设计使用的低通滤波器为****。

高通滤波器有巴特沃斯滤波器、高斯滤波器、Laplacian高通滤波器以及Unmask高通滤波器等等,本次设计使用巴特沃斯高通滤波器。

1、频域低通滤波器:设计低通滤波器包括 butterworth and Gaussian (选择合适的半径,计算功率谱比),平滑测试图像test1和2。

实验原理分析根据卷积定理,两个空间函数的卷积可以通过计算两个傅立叶变换函数的乘积的逆变换得到,如果f(x, y)和h(x, y)分别代表图像与空间滤波器,F(u, v)和H(u, v)分别为响应的傅立叶变换(H(u, v)又称为传递函数),那么我们可以利用卷积定理来进行频域滤波。

在频域空间,图像的信息表现为不同频率分量的组合。

如果能让某个范围内的分量或某些频率的分量受到抑制,而让其他分量不受影响,就可以改变输出图的频率分布,达到不同的增强目的。

频域空间的增强方法的步骤:(1)将图像从图像空间转换到频域空间;(2)在频域空间对图像进行增强;(3)将增强后的图像再从频域空间转换到图像空间。

低通滤波是要保留图像中的低频分量而除去高频分量。

图像中的边缘和噪声都对应图像傅里叶频谱中的高频部分,所以低通滤波可以除去或消弱噪声的影响并模糊边缘轮廓。

理想低通滤波器具有传递函数:其中D0为制定的非负数,D(u,v)为点(u,v)到滤波器中心的距离。

matlab 离散数据低通滤波

matlab 离散数据低通滤波

matlab 离散数据低通滤波【离散数据低通滤波】是一种常用的信号处理技术,用于去除高频噪声和保留信号中的低频成分。

在本文中,我们将详细介绍离散数据低通滤波的基本原理和实现方法。

让我们一步一步回答您关于这个主题的问题。

第一步:了解离散数据低通滤波的基本原理离散数据低通滤波的目标是通过保留信号的低频成分,去除高频噪声。

这是通过对信号进行频率域分析和滤波来实现的。

在离散数据中,信号通常以数字序列的形式存在。

我们可以将这些数字序列转换为频域表示,通过滤波器处理后再转换回时域。

第二步:理解频率域分析的概念频率域分析将一个信号从时域转换为频域,从而可以观察信号在不同频率上的能量分布。

在频率域中,信号可以表示为一系列的正弦和余弦函数的和,每个正弦和余弦函数表示了信号在不同频率上的贡献。

常用的频率域分析方法有傅里叶变换和离散傅里叶变换。

第三步:选择合适的滤波器在离散数据低通滤波中,我们需要选择一个合适的滤波器来滤去高频噪声。

常用的滤波器包括有限脉冲响应(finite impulse response, FIR)滤波器和无限脉冲响应(infinite impulse response, IIR)滤波器。

FIR滤波器的特点是具有线性相位和截止频率陡峭的传递函数,而IIR滤波器则是具有非线性相位和更为复杂的频率响应。

第四步:设计滤波器根据信号的特性和要求,可以使用不同的方法进行滤波器设计。

常用的方法有理想滤波器设计方法、巴特沃斯滤波器设计方法和窗函数设计方法。

理想滤波器设计方法通过频率响应的理想形状来设计滤波器的传递函数。

巴特沃斯滤波器设计方法则根据频率响应的最大允许误差,确定滤波器的阶数和截止频率。

窗函数设计方法则是通过在滤波器频率响应中应用窗函数来实现。

第五步:滤波器实现根据设计的滤波器特性和滤波器类型,可以使用不同的方法来实现低通滤波器。

在Matlab中,我们可以使用fir1函数来实现FIR滤波器,使用butter 函数来实现巴特沃斯滤波器。

课程设计-低通滤波器设计(含matlab程序)

课程设计-低通滤波器设计(含matlab程序)

课程设计-低通滤波器设计(含matlab程序)2010/2011学年第2 学期学院:信息与通信⼯程学院专业:电⼦信息科学与技术学⽣姓名:学号:课程设计题⽬:低通滤波器设计起迄⽇期: 6 ⽉13 ⽇~6⽉24⽇课程设计地点:指导教师:系主任:下达任务书⽇期: 2011 年 6 ⽉12 ⽇课程设计任务书课程设计任务书⽬录1 设计⽬的及要 (5) 1.1设计⽬的 (5)1.2设计内容和要求 (5)2 设计原理 (5)2.1 FIR滤波器 (5) 2.2窗函数 (6)2.3矩形窗 (7)3 设计过程 (8)3.1 设计流程图 (8)3.2 产⽣原始信号并分析频谱 (8)3.3 使⽤矩形窗设计不同特性的数字滤波器 (10)3.4 信号滤波处理 (11)4 实验结果及分析 (12)5 课程设计⼼得体会 (12)6 参考⽂献 (13)附录: (14)低通滤波器的设计1 设计⽬的及要求1.1设计⽬的设计⼀种低通滤波器并对信号进⾏滤波。

低通滤波器的作⽤是滤去信号中的中频和⾼频成分,增强低频成分。

要求做到:1.了解MATLAB 的信号处理技术;2.使⽤MATLAB 设计低通滤波器,掌握其滤波处理技术;3.对滤波前和滤波后的波形进⾏时域和频域⽐较。

1.2设计内容和要求1.熟悉有关采样,频谱分析的理论知识,对信号作频谱分析;2.熟悉有关滤波器设计理论知识,选择合适的滤波器技术指标,设计低通滤波器对信号进⾏滤波,对⽐分析滤波前后信号的频谱;3.实现信号频谱分析和滤波等有关MATLAB 函数;2 设计原理本次课程设计,我们主要是基于矩形窗的FIR 滤波器来设计⼀个低通滤波器。

2.1 FIR 滤波器FIR 滤波器即有限抽样响应因果系统,其单位抽样响应h(n)是有限长的;极点皆位于z=0处;结构上不存在输出到输⼊的反馈,是⾮递归型的。

其系统函数表⽰为:()()n -1-N 0n z n h z H ∑==普通的FIR 滤波器系统的差分⽅程为:()()()i n x i h n y 1N 0i -=∑-=式中:N 为FIR 滤波器的抽头数;x(n)为第n 时刻的输⼊样本;h(i)为FIR 滤波器第 i 级抽头系数。

matlab巴特沃斯低通滤波函数

matlab巴特沃斯低通滤波函数

matlab巴特沃斯低通滤波函数巴特沃斯低通滤波是一种常用的数字滤波方法,用于滤除信号中高频成分,保留低频信号。

在MATLAB中,可以通过调用内置函数`butter`来实现巴特沃斯低通滤波。

本文将介绍这个函数的使用方法,并给出一个简单的示例。

## 巴特沃斯低通滤波概述巴特沃斯低通滤波器是一种无限脉冲响应(IIR)滤波器,它的频率响应曲线为-3dB截止频率。

在信号处理中,巴特沃斯低通滤波器可以用于去除信号中的高频噪声,使得信号更加平滑。

## MATLAB中的`butter`函数MATLAB提供了`butter`函数来设计巴特沃斯滤波器。

该函数的基本语法格式如下:```[b, a] = butter(n, Wn, 'type')```其中,`n`是滤波器阶数,`Wn`为归一化的截止频率,范围为[0, 1],具体取值要根据实际需求设定。

参数`'type'`用来指定滤波器类型,可选的值有'low'、'high'、'bandpass'、'stop'。

`butter`函数将返回滤波器的分子系数`b`和分母系数`a`,用于滤波器的差分方程表达式。

## 示例假设我们有一个包含噪声的信号`x`,现在希望设计一个巴特沃斯低通滤波器来去除信号中的高频成分。

下面是具体的步骤:1. 生成一个包含噪声的信号`x`,作为示例输入信号。

```matlabFs = 1000; % 采样率t = 0:1/Fs:1; % 时间长度x = sin(2*pi*50*t) + sin(2*pi*120*t) + randn(size(t));```2. 设计巴特沃斯低通滤波器。

```matlabfc = 150; % 截止频率Wn = fc/(Fs/2); % 归一化的截止频率n = 6; % 滤波器阶数[b, a] = butter(n, Wn, 'low');```3. 使用设计好的巴特沃斯低通滤波器对信号进行滤波。

利用MATLAB实现数字低通滤波器的设计

利用MATLAB实现数字低通滤波器的设计

西南石油大学实验报告一实验目的:1学习用Matlab直接设计模拟滤波器和数字滤波器。

2学习用冲激响应不变法和双线性变换法的Matlab的实现。

二实验内容:设计满足下列指标的数字低通滤波器:Wp=0.2*pi, Rp=1db Ws=0.5*pi Rs=20db Fs=1khz1.利用B、C1型设计出模拟低通滤波器,采用冲激响应不变法、双线性发转换成数字低通滤波器。

2.直接设计出B、C1型数字低通滤波器。

三实验步骤:程序1Wp=2*pi*0.1*1000;Ws=2*pi*0.25*1000;Rp=1;Rs=20;[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s');[z,p,k]=buttap(N);[B,A]=butter(N,Wn,'s');freq1=linspace(0,Wp,5);freq2=linspace(Wp,Ws,15);freq3=linspace(Ws,10*pi*2,25);h1=20*log10(abs(freqs(B,A,freq1)));h2=20*log10(abs(freqs(B,A,freq2)));h3=20*log10(abs(freqs(B,A,freq3)));plot([freq1 freq2 freq3]/(2*pi),[h1,h2,h3]);grid;Xlabel('Frequency in Hz');Ylabel('gain in DB');图一程序2wp=0.2*pi;ws=0.5*pi;rp=1;rs=20;fs=1000;omegap=wp*fs;omegas=ws*fs;[N,Wn]=buttord(omegap,omegas,rp,rs,'s');[B A]=butter(N,Wn,'s');[b,a]=impinvar(B,A,fs);[h,w]=freqz(b,a,256);h=20*log10(abs(h));plot(w/pi,h);图二程序3wp=0.2*pi;ws=0.5*pi;rp=1;rs=20;fs=1000;omegap=2*fs*tan(wp/2);omegas=2*fs*tan(ws/2);[N,Wn]=cheb1ord(omegap,omegas,rp,rs,'s');[B A]=cheby1(N,rp,Wn,'s');[b,a]=bilinear(B,A,fs);[h,w]=freqz(b,a,256);h=20*log10(abs(h));plot(w/pi,h);图三程序4wp=0.2*pi;ws=0.5*pi;rp=1;rs=20;[N,Wn]=buttord(wp/pi,ws/pi,rp,rs);[B A]=butter(N,Wn);[h,w]=freqz(B,A,256);h=20*log10(abs(h));plot(w/pi,h);图四程序5Wp=0.2*pi;Ws=0.5*pi;Rp=1;Rs=20;T=0.001;Fs=1000;omegap=(2/T)*tan(Wp/2);omegas=(2/T)*tan(Ws/2);[N,Wn]=cheb1ord(omegap,omegas,Rp,Rs,'s'); [B,A]=cheby1(N,Rp,Wn,'s');[b,a]=bilinear(B,A,Fs);[h,w]=freqz(b,a,256);h1=20*log10(abs(h));plot(w/pi,h1);grid;xlabel('Digital Frequency in pi units'); ylabel('Gain in DB');axis([0 1 -50 10]);图五Wp=0.2;Ws=0.5;Rp=1;Rs=20;disp('ÇбÈÑ©·òIÐÍ')[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs)[B,A]=cheby1(N,Rp,Wn);disp('ÇбÈÑ©·òÐÍ·Ö×Ó¶àÏîʽ');fprintf('%.4e\n',B);disp('ÇбÈÑ©·ò·Öĸ¶àÏîʽ');fprintf('%.4e\n',A);w=linspace(0,0.8*pi,50);h1=20*log10(abs(freqz(B,A,w)));plot(w/pi,h1);grid;xlabel('Normalized frequency');ylabel('Gain in DB ');axis([0 0.8 -50 1]);图六四、实验小结通过本次实验,对MA TLAB软件有了进一步的了解,也在不断的实践中,更多的熟悉了MATLAB的编程,在编程方面一点点的有了进步。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

个matlab程序怎么编?(设计低通滤波器)通带边缘频率10khz阻带边缘频率22khz阻带衰减75db采样频率50khz要求设计这个低通滤波器画出脉冲响应的图形还有滤波器的形状具体程序怎么编?谢谢各位大虾的指点!!!最佳答案1.1 实验目的1.了解数字信号处理系统的一般构成;2.掌握奈奎斯特抽样定理。

1.2 实验仪器1.YBLD智能综合信号源测试仪1台2.双踪示波器1台3.MCOM-TG305数字信号处理与现代通信技术实验箱1台4.PC机(装有MATLAB、MCOM-TG305配套实验软件)1台1.3 实验原理一个典型的DSP系统除了数字信号处理部分外,还包括A/D和D/A两部分。

这是因为自然界的信号,如声音、图像等大多是模拟信号,因此需要将其数字化后进行数字信号处理,模拟信号的数字化即称为A/D转换。

数字信号处理后的数据可能需还原为模拟信号,这就需要进行D/A转换。

一个仅包括A/D和D/A两部分的简化数字信号处理系统功能如图1所示。

A/D转换包括三个紧密相关的过程,即抽样、量化和编码。

A/D转换中需解决的以下几个重要问题:抽样后输出信号中还有没有原始信号的信息?如果有能不能把它取出来?抽样频率应该如何选择?奈奎斯特抽样定理(即低通信号的均匀抽样定理)告诉我们,一个频带限制在0至fx以内的低通信号x(t),如果以fs≥2fx的抽样速率进行均匀抽样,则x(t)可以由抽样后的信号xs(t)完全地确定,即xs(t)包含有x(t)的成分,可以通过适当的低通滤波器不失真地恢复出x(t)。

最小抽样速率fs=2fx称为奈奎斯特速率。

低通译码编码量化抽样输入信号样点输出滤波输出A/D(模数转换)D/A(数模转换)图1 低通采样定理演示为方便实现,实验中更换了一种表现形式,即抽样频率固定(10KHz),通过改变输入模拟信号的频率来展示低通抽样定理。

我们可以通过研究抽样频率和模拟信号最高频率分量的频率之间的关系,来验证低通抽样定理。

1.4 实验内容1.软件仿真实验:编写并调试MATLAB程序,分析有关参数,记录有关波形。

2.硬件实验:输入不同频率的正弦信号,观察采样时钟波形、输入信号波形、样点输出波形和滤波输出波形。

1.5 MATLAB参考程序和仿真内容%*******************************************************************%%f—余弦信号的频率% M—基2 FFT幂次数N=2^M为采样点数,这样取值是为了便于作基2的FFT分析%2. 采样频率Fs%*******************************************************************%function samples(f,Fs,M)N=2^M; % fft点数=取样总点数Ts=1/Fs; % 取样时间间隔T=N*Ts; % 取样总时间=取样总点数*取样时间间隔n=0:N-1;t=n*Ts;Xn=cos(2*f*pi*t);subplot(2,1,1);stem(t,Xn);axis([0 T 1.1*min(Xn) 1.1*max(Xn)]);xlabel('t -->');ylabel('Xn');Xk=abs(fft(Xn,N));subplot(2,1,2);stem(n,Xk);axis([0 N 1.1*min(Xk) 1.1*max(Xk)]);xlabel('frequency -->');ylabel('!Xk!');%*******************************************************************%假如有一个1Hz的余弦信号y=cos(2*π*t),对其用4Hz的采样频率进行采样,共采样32点,只需执行samples(1,4,5),即可得到仿真结果。

软件仿真实验内容如下表所示:仿真参数fFsWo(计算)Xn(图形)Xk(图形)(1,4,5)另外记录图形,并标图号(1,8,5)(2,8,6)自选1.6 硬件实验步骤本实验箱采样频率fs固定为10KHz,低通滤波器的截止频率约为4.5KHz。

1、用低频信号源产生正弦信号,正弦信号源频率f自定,并将其接至2TP2(模拟输入)端,将示波器通道一探头接至2TP6(采样时钟)端观察采样时钟波形,示波器通道二探头接至2TP2观察并记录输入信号波形。

2、将示波器通道二探头接至2TP3观察并记录样点输出波形。

3、将示波器通道二探头接至2TP4观察并记录滤波输出波形。

4、根据采样定理,分f=fs /8、f=fs/4、f=fs/2等3种情况更改正弦信号频率,重复步骤2至步骤3。

5、用低频信号源产生方波信号,重复步骤1至步骤4。

1.7 思考题1、讨论在仿真实验中所计算的数字域频率Wo和Xk的图形中非零谱线位置之间的对应关系。

2、讨论在仿真实验中自选参数的意义。

3、将在2TP2端加方波信号后的恢复波形,与相同频率的正弦信号的恢复波形相比,能够得出哪些结论?2 FFT频谱分析实验2.1 实验目的1.通过实验加深对快速傅立叶变换(FFT)基本原理的理解。

2.了解FFT点数与频谱分辨率的关系,以及两种加长序列FFT与原序列FFT的关系。

2.2 实验仪器1.YBLD智能综合信号源测试仪1台2.双踪示波器1台3.MCOM-TG305数字信号处理与现代通信技术实验箱1台4.PC机(装有MATLAB、MCOM-TG305配套实验软件)1台2.3 实验原理离散傅里叶变换(DFT)和卷积是信号处理中两个最基本也是最常用的运算,它们涉及到信号与系统的分析与综合这一广泛的信号处理领域。

实际上卷积与DFT之间有着互通的联系:卷积可化为DFT来实现,其它的许多算法,如相关、滤波和谱估计等都可化为DFT来实现,DFT也可化为卷积来实现。

对N点序列x(n),其DFT变换对定义为:在DFT运算中包含大量的重复运算。

FFT算法利用了蝶形因子WN的周期性和对称性,从而加快了运算的速度。

FFT算法将长序列的DFT分解为短序列的DFT。

N点的DFT先分解为2个N/2点的DFT,每个N/2点的DFT又分解为2个N/4点的DFT。

按照此规律,最小变换的点数即所谓的“基数(radix)。

”因此,基数为2的FFT算法的最小变换(或称蝶形)是2点DFT。

一般地,对N点FFT,对应于N个输入样值,有N个频域样值与之对应。

一般而言,FFT算法可以分为时间抽取(DIT)FFT和频率抽取(DIF)两大类。

在实际计算中,可以采用在原来序列后面补0的加长方法来提高FFT的分辨率;可以采用在原来序列后面重复的加长方法来增加FFT的幅度。

2.4 实验内容1.软件仿真实验:分别观察并记录正弦序列、方波序列及改变FFT的点数后的频谱;分别观察并记录正弦序列、方波序列及2种加长序列等信号的频谱。

2.硬件实验:分别观察并记录正弦信号、方波信号及改变FFT的点数后的频谱。

2.5 MATLAB参考程序和仿真内容%*******************************************************************%function[x]=ffts(mode,M)Nfft=2^M;x=zeros(1,Nfft); %定义一个长度为Nfft的一维全0数组if mode= =1 for n=0:Nfft-1 x(n+1)=sin(2*pi*n/Nfft); endend %定义一个长度为Nfft的单周期正弦序列if mode= =2 for n=0:Nfft-1 x(n+1)=sin(4*pi*n/Nfft); endend %定义一个长度为Nfft的双周期正弦序列if mode= =3 for n=0:Nfft/2-1 x(n+1)=sin(4*pi*n/Nfft); endend %定义一个长度为Nfft/2的正弦序列,后面一半为0序列。

if mode= =4 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end endif mode= =5 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end endif mode= =6 for n=0:Nfft/2-1 x(n+1)=square(4*pi*n/Nfft); end endn=0:Nfft-1;subplot(2,1,1);stem(n,x);axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]);xlabel('Points-->');ylabel('x(n)');X=abs(fft(x,Nfft));subplot(2,1,2);stem(n,X);axis([0 Nfft-1 1.1*min(X) 1.1*max(X)]);xlabel('frequency-->');ylabel('!X(k)!');%*******************************************************************%假设需观察方波信号的频谱,对一个周期的方波信号作32点的FFT,则只需在MATLAB 的命令窗口下键入:[x]=ffts(21,5) ,程序进行模拟,并且输出FFT的结果。

关于软件仿真实验内容,建议在完成大量仿真例子的基础上,选择能够体现实验要求的4个以上的例子进行记录。

例如要观察后面补0的加长方法来提高FFT的分辨率的现象,可以仿真ffts(4,5)和ffts(6,6)两个例子。

2.6 硬件实验步骤1.将低频信号源输出加到实验箱模拟通道1输入端,将示波器探头接至模拟通道1输出端。

2.在保证实验箱正确加电且串口电缆连接正常的情况下,运行数字信号处理与DSP应用实验开发软件,在“数字信号处理实验”菜单下选择“FFT频谱分析”子菜单,出现显示FFT频谱分析功能提示信息的窗口。

3.用低频信号产生器产生一个1KHz的正弦信号。

4.选择FFT频谱分析与显示的点数为64点,开始进行FFT运算。

此后,计算机将周期性地取回DSP运算后的FFT数据并绘图显示5.改信号源频率,观察并记录频谱图的变化。

6.选择FFT的点数为128点,观察并记录频谱图的变化。

7.更改正弦信号的频率,重复步骤4 ~步骤6。

8.用低频信号产生器产生一个1KHz的方波信号,重复步骤4 ~步骤7。

注意:应根据实验箱采样频率fs为10KHz和方波信号的频带宽度选择方波信号的频率。

相关文档
最新文档