当前位置:文档之家› 南京理工大学数字信号处理matlab上机完美版

南京理工大学数字信号处理matlab上机完美版

南京理工大学数字信号处理matlab上机完美版
南京理工大学数字信号处理matlab上机完美版

1.已知3阶椭圆IIR数字低通滤波器的性能指标为:通带截止频率0.4π,通带波纹为0.6dB,最小阻带衰减为32dB。设计一个6阶全通滤波器对其通带的群延时进行均衡。绘制低通滤波器和级联滤波器的群延时。

%Q1_solution

%ellip(N,Ap,Ast,Wp)

%N--->The order of the filter

%Ap-->ripple in the passband

%Ast->a stopband Rs dB down from the peak value in the passband

%Wp-->the passband width

[be,ae]=ellip(3,0.6,32,0.4);

hellip=dfilt.df2(be,ae);

f=0:0.001:0.4;

g=grpdelay(hellip,f,2);

g1=max(g)-g;

[b,a,tau]=iirgrpdelay(6,f,[0 0.4],g1);

hallpass=dfilt.df2(b,a);

hoverall=cascade(hallpass,hellip);

hFVT=fvtool([hellip,hoverall]);

set(hFVT,'Filter',[hellip,hoverall]);

legend(hFVT,'Lowpass Elliptic filter','Compensated filter');

clear;

[num1,den1]=ellip(3,0.6,32,0.4);

[GdH,w]=grpdelay(num1,den1,512);

plot(w/pi,GdH); grid

xlabel('\omega/\pi'); ylabel('Group delay, samples');

F=0:0.001:0.4;

g=grpdelay(num1,den1,F,2); % Equalize the passband

Gd=max(g)-g;

% Design the allpass delay equalizer

[num2,den2]=iirgrpdelay(6,F,[0,0.4],Gd);

[GdA,w] = grpdelay(num2,den2,512);

hold on;

plot(w/pi,GdH+GdA,'r');

legend('Original Filter','Compensated filter');

2.设计巴特沃兹模拟低通滤波器,其滤波器的阶数和3-dB 截止频率

由键盘输入,程序能根据输入的参数,绘制滤波器的增益响应。 clear;

N=input('Type in the order N = ');

Wn=input('Type in the 3-dB cutoff frequency Wn = '); %模拟频率

[num,den]=butter(N,Wn,'s');

w=0:2*Wn;

h=freqs(num,den,w);

plot(w,20*log(abs(h))),grid;

3.已知系统的系统函数为:

12

1234

10.20.5()1 3.2 1.50.8 1.4z z H z z z z z ???????+=++?+ 用MATLAB 进行部分分式展开,并写出展开后的表达式。

% Partial-Fraction Expansion of Rational z-Transform

num = [0 0 1 -0.2 0.5];

den = [1 3.2 1.5 -0.8 1.4];

[r,p,k] = residuez(num,den);

disp('Residues');disp(r')

disp('Poles');disp(p')

disp('Constants');disp(k)

4.设计切比雪夫I 型IIR 数字高通滤波器,其性能指标为:通带波

纹0.5dB p α=,最小阻带衰减43dB s α=,通带和阻带边缘频率0.75 rad p ωπ=和0.35 rad s ωπ=绘制所设计的滤波器增益响应。 %a4

disp('prewapping is done,and T=2');

Wp = tan(0.75*pi/2);

Ws = tan(0.5*pi/2);

Rp = 0.5;

Rs = 43;

[N,Wn] = cheb1ord(Ws,Wp,Rp,Rs,'s');

[b,a] = cheby1(N,Rp,Wn,'s');

[bt,at]=lp2hp(b,a,Wp);

[num,den]=bilinear(bt,at,0.5);

[h,omega] = freqz(num,den);

plot (omega/pi,20*log10(abs(h)));grid;

xlabel('\omega/\pi'); ylabel('Gain');

title('Type I Chebyshev Highpass Filter');

clear;%预畸变

Rp=0.5;

Rs=43;

Wp=0.75;

Ws=0.35;

[N,Wp]=cheb1ord(Wp,Ws,Rp,Rs);

[num,den]=cheby1(N,Rp,Wp,'high');

w=0:pi/1024:pi;

h=freqz(num,den,w);

subplot(2,1,1);

plot(w/pi,abs(h)),grid;title('Amplitude in linear scale')

subplot(2,1,2);

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

title('Amplitude in log scale')

5.已知复指数序列为:(0.40.5)[]0.2j n x n e

+=,绘制30点该序列的实部

和虚部。

n=0:29;

x=0.2*exp((0.4+1i*0.5)*n);

subplot(211);

stem(n,real(x));

xlabel('n');ylabel('real part');

grid on;

subplot(212);

stem(n,imag(x));

xlabel('n');ylabel('imag part');

grid on;

6.设计切比雪夫I 型模拟低通滤波器,其滤波器的阶数,3-dB 截止

频率和通带的波纹由键盘输入,程序能根据输入的参数,绘制滤波器的增益响应。

clear;

N=input(' 滤波器阶数N =');

Wn=input(' 截止频率Wn = ');

Rp=input('通带波纹Rp = ');

[num,den]=cheby1(N,Rp,Wn,'s');

w=0:5*Wn;

h=freqs(num,den,w);

plot(w,20*log10(abs(h))),grid;

xlabel('Frequency, Hz'); ylabel('Gain, dB');

7.已知系统的系统函数为:

1112

10.6 1.8()0.21 3.21 2.4(1 2.4)H z z z z ???=++++?? 用MATLAB 求系统z 变换的有理形式,并写出有理形式的表达式。

r=[1 0.6 1.8];

p=[-3.2 2.4 2.4];

k=0.2;

[num, den] = residuez(r,p,k)

8.设计巴特沃兹IIR 数字带通滤波器,其性能指标为:归一化通带截止频率为120.4,0.6p p ωπωπ==,归一化阻带截止频率为120.3,0.7s s ωπωπ==,通带波纹为0.6dB ,最小阻带衰减为35dB 。绘制所设计的滤波器增益响应。

% Design of IIR Butterworth Bandpass Filter

Wp =[0.4 0.6];

Ws = [0.3 0.7];

Rp = 0.6;

Rs = 35;

[N,Wn] = buttord(Wp, Ws, Rp, Rs);

[b,a] = butter(N,Wn);

[h,omega] = freqz(b,a,256);

plot (omega/pi,abs(h));grid;

xlabel('\omega/\pi'); ylabel('Gain');

title('IIR Butterworth Bandpass Filter');

disp(N);

disp(Wn);

x n=,绘制24点该序列。

9.已知指数序列为:[]2(0.9)n

n=0:23;

x=2*0.9.^n;

stem(n,x,'.');

grid on;

ylabel('Amplitude');

xlabel('Time index');

10.设计椭圆模拟低通滤波器,其滤波器的阶数,3-dB截止频率,通带的波纹和阻带衰减由键盘输入,程序能根据输入的参数,绘制滤波器的增益响应。

clear;

N=input('Type in the order N = ');

Wn=input('Type in the 3-dB cutoff frequency Wn = ');

Rp=input('Type in the the passband ripple Rp = ');

Rs=input('Type in the the minimum stopband attenuation Rs = ');

[num,den]=ellip(N,Rp,Rs,Wn,'s');

w=0:5*Wn;

h=freqs(num,den,w);

plot(w,20*log10(abs(h))),grid;

xlabel('Frequency, Hz'); ylabel('Gain, dB');

11.已知系统的系统函数为:

12

1234

10.20.5()1 3.2 1.50.8 1.4z z H z z z z z ???????+=++?+ 用MATLAB 的impz 函数求h[n]的前30个样本值。

clc;

A=[1 3.2 1.5 -0.8 1.4];

B=[1 -0.2 0.5];

[H,T]=impz(B,A,30);

disp(H);

stem(T,H);

12.已知5阶椭圆IIR 数字低通滤波器的性能指标为:通带截止频率

0.35π,通带波纹为0.8dB ,最小阻带衰减为35dB 。设计一个10阶全通滤波器对其通带的群延时进行均衡。绘制低通滤波器和级联滤波器的群延时。

%ellip(N,Ap,Ast,Wp)

%N--->The order of the filter

%Ap-->ripple in the passband

%Ast->a stopband Rs dB down from the peak value in the passband

%Wp-->the passband width

[be,ae]=ellip(5,0.8,35,0.35);

hellip=dfilt.df2(be,ae);

f=0:0.001:0.4;

g=grpdelay(hellip,f,2);

g1=max(g)-g;

[b,a,tau]=iirgrpdelay(10,f,[0 0.4],g1);

%the first parameter above is the order of the allpass

hallpass=dfilt.df2(b,a);

hoverall=cascade(hallpass,hellip);

hFVT=fvtool([hellip,hoverall]);

set(hFVT,'Filter',[hellip,hoverall]);

legend(hFVT,'Lowpass Elliptic filter','Compensated filter');

clear;

[num1,den1]=ellip(5,0.8,35,0.35);

[GdH,w]=grpdelay(num1,den1,512);

plot(w/pi,GdH); grid

xlabel('\omega/\pi'); ylabel('Group delay, samples');

F=0:0.001:0.4;

g=grpdelay(num1,den1,F,2); % Equalize the passband

Gd=max(g)-g;

% Design the allpass delay equalizer

[num2,den2]=iirgrpdelay(10,F,[0,0.4],Gd);

[GdA,w] = grpdelay(num2,den2,512);

hold on;

plot(w/pi,GdH+GdA,'r');

legend('Original Filter','Compensated filter');

13.编写4点滑动平均滤波器程序。原始未受干扰的序列为:s[n]=3[n(0.8)n],加性噪声信号d[n]为随机序列,幅度0.6,受干扰的序列为:x[n]= s[n]+ d[n],分别绘制长度为40的原始未受干扰的序列,噪声序列和受干扰序列,以及滑动平均滤波器的输出。

% Program 2_4

% Signal Smoothing by a Moving-Average Filter

R = 40;

d = 6/5*(rand(1,R)-0.5);

m = 0:1:R-1;

s =3.*m.*0.8.^m;

x = s + d;

subplot(211);

plot(m,d,'r-',m,s,'b:',m,x,'m--')

title('The sequence with noise');

ylabel('Amplitude')

legend('d[n]','s[n]','x[n]');

b = ones(4,1)/4;

y = fftfilt(b,x);

subplot(212);

plot(m,s,'r-',m,y,'b--')

title('The original sequence & the output sequence');

legend('s[n]','y[n]');

ylabel('Amplitude')

14.绘制长度为10点的矩形序列的16点离散傅立叶变换样本的幅度和相位。

xn=ones(10,1);

Xk=fft(xn,16);Xkf=abs(Xk);Xkp=angle(Xk);

subplot(211);

stem(0:15,Xkf,'filled');

xlabel('Time index/n');ylabel('Magnitude');

subplot(212);

stem(0:15,Xkp,'filled');

xlabel('Time index/n');ylabel('Phase')

15.已知系统的系统函数为:

12

123410.20.5()1 3.2 1.50.8 1.4z z H z z z z z

???????+=++?+ 用MATLAB 的filter 函数求h[n]的前20个样本值。

num=[1,-0.2,0.5];

den=[1,3.2,1.5,-0.8,1.4];

x=[1 zeros(1,20-1)];

y=filter(num, den, x);

disp('Coefficients of the power series expansion');

disp(y)

stem(y)

16.利用Hermann 公式估计FIR 低通滤波器的阶数。该滤波器的性能

指标为:通带截止频率为1500Hz ,阻带截止频率为1800Hz ,通带波纹为p δ=0.015,阻带波纹为s δ=0.021,抽样频率为5000Hz 。

% Program 10_1

% Estimation of FIR Filter Order Using remezord

%

clear;

fedge = [1500 1800] ;% input('Type in the bandedges = ');

mval = [1 0];%input('Desired magnitude values in each band = ');

dev = [0.015 0.021];%input('Allowable deviation in each band = ');

FT = 5000;%input('Type in the sampling frequency = ');

[N, fpts, mag, wt] = remezord(fedge, mval, dev, FT);

d = fdesign.lowpass('n,fp,fst',N,0.6,0.72);

design(d);

fprintf('Filter order is %d \n',N);

17.编写长度为5的中值滤波器程序。原始未受干扰的序列为:

s[n]=3[n(0.8)n ], 加性噪声信号d[n]为随机序列,幅度0.6,分别绘制长度为40的受干扰序列,以及中值滤波器的输出。

% Program 2_5

% Illustration of Median Filtering

%

N = 5;

R = 40;

b = 6/5*(rand(1,R)-0.5); % Generate impulse noise

m = 0:R-1;

s = 3*m.*(0.8.^m); % Generate signal

x = s + b; % Impulse noise corrupted signal

y = medfilt1(x,N); % Median filtering

subplot(2,1,1)

stem(m,x);axis([0 50 -1 8]);grid on;

xlabel('n');ylabel('Amplitude');

title('Impulse Noise Corrupted Signal');

subplot(2,1,2)

stem(m,y);grid on;

xlabel('n');ylabel('Amplitude');

title('Output of Median Filter');

18.已知16点序列x[n]的DFT 为:

/16015[]0k k X k otherwise ≤≤?=??

绘制序列x[n]的实部和虚部。

Xk=(0:15)/16;xn=ifft(Xk);

xnre=real(xn);

xnim=imag(xn);

subplot(2,1,1);

stem(0:15,xnre,'.');grid on;

title('The real part of the sequence');

subplot(2,1,2);

stem(0:15,xnim,'.');grid on;

title('The imaginary part of the sequence');

19.已知系统的系统函数为:

12

1234

10.20.5()1 3.2 1.50.8 1.4z z H z z z z z ???????+=++++ 用MATLAB 测试该系统的稳定性。

num=[1 -0.2 0.5];

den=[1 3.2 1.5 0.8 1.4];

zplane(num,den);

grid on;

20. 利用Remez 算法设计一个等波纹线性相位FIR 低通滤波器。该滤

波器的性能指标为:通带截止频率为1500Hz ,阻带截止频率为1800Hz ,通带波纹为p δ=0.015,阻带波纹为s δ=0.021,抽样频率为5000Hz 。

% Program 10_2

% Design of Equiripple Linear-Phase FIR Filters

%

format long

fedge = [1500 1800];

FT = 5000;

mval = [1 0];

dev =[0.015 0.021];

[N,fpts,mag,wt] = remezord(fedge,mval,dev,FT);

b = remez(N,fpts,mag,wt);

disp('FIR Filter Coefficients'); disp(b)

[h,w] = freqz(b,1,256);

subplot(2,1,1);

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

xlabel('\omega/\pi'); ylabel('Gain, dB');

subplot(2,1,2);

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

axis([0 0.4 -0.7 0.7]);

xlabel('\omega/\pi'); ylabel('Gain, dB');

title('detail in passband')

21. 21.已知序列

12[]{2.2,3, 1.5,4.2, 1.8},[]{0.8,1,1.6,0.8}x n x n =??=?,计算两个序列的卷积12[][][]x n x n x n =*,并绘制序列[]x n 。

clc;

clear;

x1=[2.2 3 -1.5 4.2 -1.8];

x2=[0.8 -1 1.6 0.8];

x=conv(x1,x2) %结果在主界面输出

stem(x,'filled');

grid on;

xlabel('Time index/n');ylabel('Amplitude');

title('The output convolution');

22. 已知序列x[n]为[]cos(/2), 015x n n n π=≤≤,绘制序列x[n]

的DFT 和DTFT 的幅度。

n=0:15;x=cos(pi*n*0.5);

X=fft(x);

subplot(2,1,1);

stem(n,X,'.');

title('Magnitude of DFT')

xlabel('n'); ylabel('Magnitude')

%circulating DTFT

k=0:499;

w = pi/500*k;

X1=x*(exp(-1i*pi/500)).^(n'*k);

magX=abs(X1);

subplot(2,1,2);

plot(w/pi,magX);title('幅度响应');grid;

ylabel('幅度');xlabel('以\pi 为单位的频率');

23. 已知FIR 滤波器的系统函数为:

123456() 2.4 3.2 1.50.8 1.4 3.6 5.2H z z z z z z z ??????=++++++ 用MATLAB 将系统函数分解为二次多项式之积,并写出各二次多项式的表达式。 clear

P=[2.4,3.2,1.5,0.8,1.4,3.6,5.2];

r=roots(P);%调用函数计算

syms z

s1=simple((z-r(1))*(z-r(2)));

d1=simple(s1./z^2)

s2=simple((z-r(3))*(z-r(4)));

d2=simple(s2./z^2)

s3=simple((z-r(5))*(z-r(6)));

d3=simple(s3./z^2)

Q=2.4*d1*d2*d3

24.已知FIR 数字低通滤波器的性能指标为:通带截止频率0.35π,阻带截止频率0.45π,通带和阻带波纹δ = 0.01。设计满足该滤波器的Kaiser ’s 窗函数,绘制出Kaiser ’s 窗函数的增益响应。 clear;

fpts=[0.35,0.45];

mag=[1,0];

dev=[0.01,0.01];

[N,Wn,beta,ftype]=kaiserord(fpts,mag,dev);

kw=kaiser(N+1,beta);

b=fir1(N,Wn, kw);

[h,omega]=freqz(b,1,512);

plot(omega/pi,20*log10(abs(h)));grid;

xlabel('\omega/\pi'); ylabel('Gain, dB');

25.已知系统的频h 响特性为:

23423410.20.520.6()1 3.2 1.50.8 1.4j j j j j j j j j e e e e H e e e e e ωωωωωωωωω

?????????++?=++?+ 绘制该系统的幅频特性和相频特性。 clear

k=500; % number of frequency samples is 500

num=[1 -.2 .5 2 -.6]; %Numerator coefficients

den=[1 3.2 1.5 -.8 1.4]; %Denominator coefficients

w=0:pi/(k-1):pi;

h=freqz(num,den,w); %Compute the frequency response

subplot(1,2,1)

plot(w/pi,abs(h))

title('Magnitude Spectrum')

xlabel('\omega/\pi');ylabel('Magnitude')

subplot(1,2,2)

plot(w/pi,unwrap(angle(h))) %unwrapped phase function

title('Phase Spectrum')

xlabel('\omega/\pi');ylabel('Phase,radians')

[sos,g]=tf2sos(num,den)

26. 已知序列12[]{2.2,3, 1.5,4.2, 1.8},[]{0.8,1,1.6,0.8}x n x n =??=?,基

于DFT 计算两个序列的卷积12[][][]x n x n x n =*,并绘制基于DFT 计算得到的[]x n 。

clc;

clear;

x1=[2.2 3 -1.5 4.2 -1.8];

x2=[0.8 -1 1.6 0.8];

n=size(x1,2);

m=size(x2,2);

X1=fft(x1,n+m-1);

X2=fft(x2,n+m-1);

X=X1.*X2;

x=ifft(X)

stem(x,'.');

27.已知IIR 滤波器的系统函数为:

12345

12345

25346()135243z z z z z H z z z z z z ??????????++?++=+?+?+ 用MATLAB 将系统函数表示为级联型结构形式,并写出各级联子系统的表达式。(不确定)

format short;

num = [2,5,1,-3,4,6];

den = [1,3,-5,2,-4,3];

[z,p,k]=tf2zp(num,den);

sos=zp2sos(z,p,k)

28.用Kaiser ’s 窗函数设计FIR 数字高通滤波器,其滤波器的性能

指标为:通带截止频率0.55π,阻带截止频率0.45π,通带和阻带波纹δ =0.04。绘制出该滤波器的增益响应。

% Program 10_5

% Lowpass Filter Design Using the Kaiser Window

clc

%delta_s=50; %阻带衰减

delta_p=0.04; %通带衰减

%alpha_s=10^(-delta_s/20);

alpha_p=1-10^(-delta_p/20);

fpts = [0.45 0.55]; %截止频率1,截止频率2

mag = [0 1]; %截止频率1对应的幅度 截止频率2对应的幅度

dev = [alpha_p alpha_p]; %通带衰减 阻带衰减(线性)

[N,Wn,beta,ftype]=kaiserord(fpts,mag,dev);

b = fir1(N,Wn,'high',kaiser(N+1,beta));

[h,omega] = freqz(b,1,512);

plot(omega/pi,20*log10(abs(h)));grid;

xlabel('\omega/\pi'); ylabel('Gain, dB');

29.绘制6点滑动平均滤波器的幅频特性和相频特性。

h = ones(1,6)/6;

[H,w] = freqz(h, 1, 256);

subplot(211)

plot(w/pi, abs(H));

ylabel('Magnitude'); xlabel('\omega/\pi');

subplot(212)

ph = angle(H)*180/pi;

plot(w/pi,angle(H)*180/pi);

ylabel('Phase, degrees');xlabel('\omega/\pi');

30.原始序列为:s[n]=3[n(0.8)n],加性噪声d[n]为随机序列,幅度0.6,受干扰的序列为:x[n]= s[n]+ d[n],使用重叠相加法实现5点滑动平均滤波器对x[n]的处理。绘制未受干扰的序列s[n]和滤波器输出的有噪序列(利用fftfilt函数)。

% Program 2_4

% Signal Smoothing by a Moving-Average Filter

R = 40;

d = 6/5*(rand(1,R)-0.5);

m = 0:1:R-1;

s =3.*m.*0.8.^m;

x = s + d;

subplot(211);

plot(m,d,'r-',m,s,'b:',m,x,'m--')

title('The sequence with noise');

ylabel('Amplitude')

legend('d[n]','s[n]','x[n]');

b = ones(5,1)/5;

y = fftfilt(b,x);

subplot(212);

plot(m,s,'r-',m,y,'b--')

title('The original sequence & the output sequence');

legend('s[n]','y[n]');

ylabel('Amplitude')

31.已知IIR滤波器的系统函数为:

12345

12345

25346

()

135243

z z z z z

H z

z z z z z

?????

?????

++?++

=

+?+?+

用MATLAB对系统进行并联结构I型和并联结构II型分解。

32.用海明窗设计多频带FIR滤波器,该滤波器满足如下条件。在频

率范围0到0.32π内幅度为0.6,在频率范围0.35π到0.65π内幅度为0.2,在频率范围0.68π到π内幅度为0.8。绘制出该滤波器的幅频特性。

fpts = [0 0.32 0.35 0.65 0.68 1];

mval = [0.6 0.6 0.2 0.2 0.8 0.8];

b = fir2(100,fpts,mval);

[h,omega] = freqz(b,1,512);

plot(omega/pi,abs(h));grid;

xlabel('\omega/\pi'); ylabel('Magnitude');

33.绘制系统的输入序列和输出序列,已知滤波器的差分方程和输入信号为:

34. 已知系统的系统函数为:

1234

1234

10.20.520.6()1 3.2 1.50.8 1.4z z z z H z z z z z ?????????++?=++?+ 绘制该系统的零极点分布图。

方法一:num=[1 -0.2 0.5 2 -0.6];

den=[1 3.2 1.5 -0.8 1.4];

zplane(num,den)

35. 已知全通系统的系统函数为:

12345

12345

34253()135243z z z z z H z z z z z z ???????????+?++=+?+?+ 用MATLAB 求全通系统进行级联格型结构的乘法器系数。(不确定) num=[1 0.4 0.18 -0.2];

>> k=poly2rc(num)

36.已知有限长序列为:[]sin(25

/64),063x n n n π=≤≤,求该序列的64点离散傅立叶变换X[k],绘制出X[k]的幅度。

N=64;

n=0:1:63;

x=sin(25*pi*n/N);

%k=512;

%w = 0:pi/(k-1):pi;

%h = freqz(x, 1, w);

%subplot(211);

%plot(w/pi,abs(h));grid

%title('Magnitude Spectrum')

%xlabel('\omega/\pi'); ylabel('Magnitude')

X=fft(x,64);

%subplot(212)

stem(n,X,'.');grid;

37设计4阶巴特沃兹模拟低通滤波器,其3-dB 截止频率为1,绘制滤波器的增益响应。 N = 4;

Wn = 1;

[num,den] = butter(N,Wn,'s');

[h,w] = freqs(num,den);

plot (w,20*log10(abs(h)));

xlabel('Frequency, Hz'); ylabel('Gain, dB');

title('The 4th-order IIR Butterworth Lowpass Filter ')

grid on

38. 已知系统的零极点分别如下:

123412342.2,1,1, 1.4

3.72, 3.72, 2.1, 2.1z z j z j z p j p j p j p j ==?+=??==+=?=??=?+

求系统的系统函数H(z)。

format long

zr =[2.2 -1+i -1-i 1.4];

pr =[3.7+2*i 3.7-2*i -2.1-i -2.1+i ];

% Transpose zero and pole row vectors

z = zr'; p = pr';

k = 1;

[num, den] = zp2tf(z, p, k);

disp('Numerator polynomial coefficients'); disp(num);

disp('Denominator polynomial coefficients'); disp(den);

39.设计椭圆IIR 数字低通滤波器,其性能指标为:通带截止频率为1000Hz ,阻带截止频率为1250Hz ,通带波纹为0.4dB ,最小阻带衰减为45dB ,抽样频率为5000Hz 。绘制所设计的滤波器增益响应。

Fp = 1000%input('passband edge in Khz = ');

Fs = 1250%input('stopband edge in Khz = ');

Ft = 5000%input('Sampling rate in Khz = ');

Rp =0.4% input('Passband ripple in dB = ');

Rs =45% input('Minimum stopband attenuation in dB = ');

Wp=2*Fp/Ft;

Ws=2*Fs/Ft;

[N,Wn] = ellipord(Wp,Ws,Rp,Rs);

[b,a] = ellip(N,Rp,Rs,Wn);

[h,omega] = freqz(b,a,256);

plot (omega/pi,20*log10(abs(h)));grid;

xlabel('\omega/\pi'); ylabel('Gain, dB');

title('IIR Elliptic Lowpass Filter');

%figure(2);

%subplot(2,1,1);

%plot(omega/pi,20*log10(abs(h))); grid;

%axis([0 1 -60 5]);

%subplot(2,1,2);

%plot(omega/pi,20*log10(abs(h))); grid;

%axis([0 0.4 -0.6 0.2]);

40.编写总体均值滤波器程序。原始未受干扰的序列为:s[n]=3[n(0.8)n], 加性噪声信号d[n]为随机序列,幅度0.6,受干扰的序列为:x[n]= s[n]+ d[n],绘制噪声序列和60次检测结果的总体平均的序列。

% Program 2_4

% Signal Smoothing by a Moving-Average Filter

R = 60;

d = 6/5*(rand(1,R)-0.5);

m = 0:1:R-1;

s =3.*m.*0.8.^m;

x = s + d;

subplot(211);

plot(m,d,'r-',m,s,'b:',m,x,'m--')

title('The sequence with noise');

ylabel('Amplitude')

legend('d[n]','s[n]','x[n]');

b = ones(R,1)/R;

y = fftfilt(b,x);

subplot(212);

plot(m,s,'r-',m,y,'b--')

title('The original sequence & the output sequence');

南京理工大学数字信号处理matlab上机完美版

1.已知3阶椭圆IIR数字低通滤波器的性能指标为:通带截止频率0.4π,通带波纹为0.6dB,最小阻带衰减为32dB。设计一个6阶全通滤波器对其通带的群延时进行均衡。绘制低通滤波器和级联滤波器的群延时。 %Q1_solution %ellip(N,Ap,Ast,Wp) %N--->The order of the filter %Ap-->ripple in the passband %Ast->a stopband Rs dB down from the peak value in the passband %Wp-->the passband width [be,ae]=ellip(3,0.6,32,0.4); hellip=dfilt.df2(be,ae); f=0:0.001:0.4; g=grpdelay(hellip,f,2); g1=max(g)-g; [b,a,tau]=iirgrpdelay(6,f,[0 0.4],g1); hallpass=dfilt.df2(b,a); hoverall=cascade(hallpass,hellip); hFVT=fvtool([hellip,hoverall]); set(hFVT,'Filter',[hellip,hoverall]); legend(hFVT,'Lowpass Elliptic filter','Compensated filter'); clear; [num1,den1]=ellip(3,0.6,32,0.4); [GdH,w]=grpdelay(num1,den1,512); plot(w/pi,GdH); grid xlabel('\omega/\pi'); ylabel('Group delay, samples'); F=0:0.001:0.4; g=grpdelay(num1,den1,F,2); % Equalize the passband Gd=max(g)-g; % Design the allpass delay equalizer [num2,den2]=iirgrpdelay(6,F,[0,0.4],Gd); [GdA,w] = grpdelay(num2,den2,512); hold on; plot(w/pi,GdH+GdA,'r');

MATLAB上机指导书

MATLAB上机指导书 电子信息科学与技术专业 张焕明孙明编 佛山科学技术学院 2005年9月

目录 前言 实验一 MATLAB基础知识 1 实验二矩阵与数组 5 实验三基本操作命令 8 实验四高级操作命令 10 实验五 MATLAB的M函数编程 12

前言 MATLAB的名称源自Matrix Laboratory,是一门计算语言,它专门以矩阵的形式处理数据.MATLAB将计算与可视化集成到一个灵活的计算机环境中,并提供了大内置函数,可以在广泛的工程问题中直接利用这些函数获得数值解.此外,用MATLAB 编写程序,犹如在一张草稿纸上排列公式和求解问题一样效率高,因此被称为“演算纸式的”科学工程算法语言.在我们高等数学的学习过程中,可以结合 MATLAB 软件,做一些简单的编程应用,在一定程度上弥补我们常规教学的不足,同时,这也是我们探索高职高专数学课程改革迈出的一步.

实验一 MATLAB 基础知识 一、实验目的 1、MATLAB 的使用初步练习 2、MATLAB 的窗口组成 二、实验内容 1、掌握表达式的输入方法 2、MATLAB 的常量及其表示方法 3、分号、百分比号、逗号及省略号的用法 4、向量和矩阵的处理方式;常用的数学函数;搜索路径的概念;MATLAB 的帮 助功能。 三、实验仪器、设备和材料 1、微型计算机,能正常运行Matlab 6.0或以上版本 2、Matlab6.0或以上版本 四、实验原理 略(参考教材的相关部分) 五、实验步骤 1、MATLAB 文件的编辑、存储和执行 MATLAB 提供了两种运行方式,即命令行和M 文件方式. A .命令行方式 直接在命令窗口输入命令来实现计算或作图功能. 例如,若要求表达式 9 .248.26107 sin 369.12÷?+π的值,我们可在MATLAB 命令窗口中键入下面的命令: >> 1.369^2+sin(7/10*pi)*sqrt(26.48)/2.9 (回车) 观测运行结果并解释原因 也可将计算的结果赋给某一个变量,例如输入 : >> a=1.369^2+sin(7/10*pi)*sqrt(26.48)/2.9 (回车) 观测运行结果并解释原因 B .M 文件的运行方式 1)文件编辑 在MATLAB 窗口中单击File 菜单依次选择NewM-File,打开M 文件输入运行界面,如下图所示。此时屏幕上会出现所需的窗口,在该窗口中输入程序文件,可以进行调试和运行.与命令行方式相比,M 文件方式的优点是可以调试,可重复应用. 2)文件存储 单击File 菜单,选择Save 选项,可将自己所编写的程序存在一个后缀为m 的文件中. 3)运行程序 在M 文件窗口中选择Debug 菜单中的run 选项,即可运行此M 文件;也可在MATLAB 命令窗口中直接输入所要执行的文件名后回车即可.但需要的是该程序文件必须存在MATLAB 默认的路径下.用户可以在MATLAB 窗口中单击File 菜单选择Set Path 将要执行的文件所在的路径添加到MATLAB 默认的路径序列中. 2、MATLAB 基本运算符及表达式 表1-1 基本运算符

数字信号处理Matlab实现实例(推荐给学生)

数字信号处理Matlab 实现实例 第1章离散时间信号与系统 例1-1 用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。 解 MATLAB程序如下: a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度'); 图1.1给出了卷积结果的图形,求得的结果存放在数组c中为:{-2 -4 1 3 1 5 1 -3}。 例1-2 用MATLAB计算差分方程 当输入序列为时的输出结果。 解 MATLAB程序如下: N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)];

k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n');ylabel('幅度') 图 1.2 给出了该差分方程的前41个样点的输出,即该系统的单位脉冲响应。 例1-3 用MATLAB 计算例1-2差分方程 所对应的系统函数的DTFT 。 解 例1-2差分方程所对应的系统函数为: 123 123 0.80.440.360.02()10.70.450.6z z z H z z z z -------++= +-- 其DTFT 为 23230.80.440.360.02()10.70.450.6j j j j j j j e e e H e e e e ωωωω ωωω--------++= +-- 用MATLAB 计算的程序如下: k=256; num=[0.8 -0.44 0.36 0.02]; den=[1 0.7 -0.45 -0.6]; w=0:pi/k:pi; h=freqz(num,den,w); subplot(2,2,1); plot(w/pi,real(h));grid title('实部') xlabel('\omega/\pi');ylabel('幅度')

Matlab 上机题及答案

1 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。 for m=100:999 m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end 2.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。 sum=0; n=0; val=input('Enter a number (end in 0):'); while (val~=0) sum=sum+val; n=n+1; val=input('Enter a number (end in 0):'); end if (n > 0) sum mean=sum/n end 3. 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完数。 for m=1:500 s=0; for k=1:m/2 if rem(m,k)==0 s=s+k; end end if m==s disp(m); end end 4. 从键盘上输入数字星期,在屏幕上显示对应英文星期的单词。 function week n=input('input the number:'); if isempty(n) errror('please input !!')

end if n>7|n<1 error('n between 1 and 7') end switch n case 1 disp('Monday') case 2 disp('Tuesday') case 3 disp('Wednesday') case 4 disp('Thursday') case 5 disp('Friday') case 6 disp('Saturday') case 7 disp('Sunday') end 5. 某公司销售电脑打印机的价格方案如下: ()如果顾客只买一台打印机,则一台的基本价格为$150。 ()如果顾客购买两台以上打印机,则第二台价格为$120。 ()第三台以后,每台$110。 写一段程序分别计算出购买1--10台打印机所需的钱数。打印机台数可以在程序开始处指定,或通过input命令读入。运行程序,计算出购买10台打印机的总价格。 写出程序,生成分别购买1--10台打印机所需价格的图表(使用fprintf命令输出图表,不允许手算)。 x=input('请输入购买的打印机台数:'); for m=1:x if m<=1 y(m)=150*m; elseif m<=2 y(m)=150+120*(m-1); else y(m)=150+120+110*(m-2); y(1,m)=y(m); end end y(x) plot(1:m,y,'r*--')

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

数字信号处理MATLAB中FFT实现

MATLAB中FFT的使用方法 说明:以下资源来源于《数字信号处理的MATLAB实现》万永革主编 一.调用方法 X=FFT(x); X=FFT(x,N); x=IFFT(X); x=IFFT(X,N) 用MATLAB进行谱分析时注意: (1)函数FFT返回值的数据结构具有对称性。 例: N=8; n=0:N-1; xn=[43267890]; Xk=fft(xn) → Xk= 39.0000-10.7782+6.2929i0-5.0000i 4.7782-7.7071i 5.0000 4.7782+7.7071i0+5.0000i-10.7782-6.2929i Xk与xn的维数相同,共有8个元素。Xk的第一个数对应于直流分量,即频率值为0。 (2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。 二.FFT应用举例 例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。采样频率fs=100Hz,分别绘制N=128、1024点幅频图。

clf; fs=100;N=128;%采样频率和数据点数 n=0:N-1;t=n/fs;%时间序列 x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);%信号 y=fft(x,N);%对信号进行快速Fourier变换 mag=abs(y);%求得Fourier变换后的振幅 f=n*fs/N;%频率序列 subplot(2,2,1),plot(f,mag);%绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; subplot(2,2,2),plot(f(1:N/2),mag(1:N/2));%绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; %对信号采样数据为1024点的处理 fs=100;N=1024;n=0:N-1;t=n/fs; x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);%信号 y=fft(x,N);%对信号进行快速Fourier变换 mag=abs(y);%求取Fourier变换的振幅 f=n*fs/N; subplot(2,2,3),plot(f,mag);%绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; subplot(2,2,4) plot(f(1:N/2),mag(1:N/2));%绘出Nyquist频率之前随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; 运行结果:

实验一 基于Matlab的数字信号处理基本

实验一 基于Matlab 的数字信号处理基本操作 一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离 散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容: (一) 离散时间信号在MATLAB 中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列)(n δ,也称为单位冲激序列,定义为 ) 0() 0(0 1)(≠=?? ?=n n n δ 要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为 >>n=-3:3; >>x=impDT(n); >>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1]) 程序运行结果如图1-1所示。 图1-1 单位冲激序列

青岛理工大学临沂年数字信号处理及MATLAB试卷

A卷

一、[15分] 1、10 2、f>=2fh

3、()()()y n x n h n =* 4、1 -az -11a 或者-z z ,a 1 -z 或1-1-az -1z 5、对称性 、 可约性 、 周期性 6、191点,256 7、典范型、级联型、并联型 8、T ω = Ω,)2 tan(2ω T = Ω或)2arctan(2T Ω=ω。 二、[20分] 1、C 2、 A 3、 C 4、C 5、B 6、D 7、B 8、A 9、D 10、A (CACCB DBADA) 三、[15分] 1、(5分) 混叠失真:不满足抽样定理的要求。 改善方法:增加记录长度 频谱泄漏:对时域截短,使频谱变宽拖尾,称为泄漏 改善方法:1)增加w (n )长度 2)缓慢截短 栅栏效应:DFT 只计算离散点(基频F0的整数倍处)的频谱,而不是连续函数。 改善方法:增加频域抽样点数N (时域补零),使谱线更密 2、(5分) 3、 (5分) IIR 滤波器: 1)系统的单位抽样相应h (n )无限长 2)系统函数H (z )在有限z 平面( )上有极点存在 3)存在输出到输入的反馈,递归型结构 Fir 滤波器: ? 1)系统的单位冲激响应h (n )在有限个n 处不为零; ? 2)系统函数 在||0 z >处收敛,在 处只有零点,即有限z 平面只有零点,而全部极点都在z =0处; ? 3)机构上主要是非递归结构,没有输入到输出的反馈,但有些结构中也包含有反馈的递归部分。 四、计算题(40分) 1、(12分)解: 解: 对上式两边取Z 变换,得: ()H z ||0z >

(完整版)MATLAB数学实验第二版答案(胡良剑)

数学实验答案 Chapter 1 Page20,ex1 (5) 等于[exp(1),exp(2);exp(3),exp(4)] (7) 3=1*3, 8=2*4 (8) a为各列最小值,b为最小值所在的行号 (10) 1>=4,false, 2>=3,false, 3>=2, ture, 4>=1,ture (11) 答案表明:编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10) (12) 答案表明:编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10) Page20, ex2 (1)a, b, c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b (2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码 Page20,ex3 >> r=2;p=0.5;n=12; >> T=log(r)/n/log(1+0.01*p) Page20,ex4 >> x=-2:0.05:2;f=x.^4-2.^x; >> [fmin,min_index]=min(f) 最小值最小值点编址 >> x(min_index) ans = 0.6500 最小值点 >> [f1,x1_index]=min(abs(f)) 求近似根--绝对值最小的点 f1 = 0.0328 x1_index = 24 >> x(x1_index) ans = -0.8500 >> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点 >> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点 f2 = 0.0630 x2_index = 65 >> x(x2_index) ans = 1.2500

MATLAB上机答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则: 变量名必须以字母开头,只能由字母、数字或下划线组成。 变量名区分大小写。 变量名不能超过63个字符。 关键字不能作为变量名。 最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector.线性等分函数 LINSPACE(X1,X2)generates a row vector of100linearly equally spaced points between X1and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1,X2,N)generates N points between X1and X2. For N<2,LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float:double,single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

数字信号处理指导书matlab版

实验1 时域离散信号的产生 一、实验目的 学会运用MATLAB 产生常用离散时间信号。 二、实验涉及的matlab 子函数 1、square 功能:产生矩形波 调用格式: x=square(t);类似于sin (t ),产生周期为2*pi ,幅值为+—1的方波。 x=square(t ,duty);产生制定周期的矩形波,其中duty 用于指定脉冲宽度与整个周期的比例。 2、rand 功能:产生rand 随机信号。 调用格式: x=rand (n ,m );用于产生一组具有n 行m 列的随机信号。 三、实验原理 在时间轴的离散点上取值的信号,称为离散时间信号。通常,离散时间信号用x (n )表示,其幅度可以在某一范围内连续取值。 由于信号处理所用的设备主要是计算机或专用的信号处理芯片,均以有限的位数来表示信号的幅度,因此,信号的幅度也必须“量化”,即取离散值。我们把时间和幅度上均取离散值的信号称为时域离散信号或数字信号。 在MATLAB 中,时域离散信号可以通过编写程序直接生成,也可以通过对连续信号的等间隔抽样获得。 下面介绍常用的时域离散信号及其程序。 1、单位抽样序列 ? ? ?≠==000 1)(k k k δ MATLAB 源程序为

1) function [x,n] = impuls (n0,n1,n2) % Generates x(n) = delta(n-n0); n=n0 处建立一个单位抽样序列% [x,n] = impuls (n0,n1,n2) if ((n0 < n1) | (n0 > n2) | (n1 > n2)) error('arguments must satisfy n1 <= n0 <= n2') end n = [n1:n2]; x = [zeros(1,(n0-n1)), 1, zeros(1,(n2-n0))]; 将上述文件存为:impuls.m,在命令窗口输入 n0=0,n1=-10,n2=11; [x,n]=impuls (n0,n1,n2); stem(n,x,’filled’) 2)n1=-5;n2=5;n0=0; n=n1:n2; x=[n==n0]; stem(n,x,'filled','k'); axis([n1,n2,1.1*min(x),1.1*max(x)]); title('单位脉冲序列'); xlabel('时间(n)'); ylabel('幅度x(n)'); 3)n1=-5;n2=5;k=0; n=n1:n2; nt=length(n); %求n点的个数 nk=abs(k-n1)+1; %确定k在n序列中的位置 x=zeros(1,nt); %对所有样点置0 x(nk)=1; %对抽样点置1 stem(n,x,'filled','k'); axis([n1,n2,0,1.1*max(x)]); title('单位脉冲序列'); xlabel('时间(n)'); Ylabel('幅度x(n)');

(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理

实验一图像的点运算 实验1.1 直方图 一.实验目的 1.熟悉matlab图像处理工具箱及直方图函数的使用; 2.理解和掌握直方图原理和方法; 二.实验设备 1.PC机一台; 2.软件matlab。 三.程序设计 在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。 I=imread('cameraman.tif');%读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 四.实验步骤 1. 启动matlab 双击桌面matlab图标启动matlab环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像, 如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义; 4.运行,观察显示结果; 5.结束运行,退出; 五.实验结果 观察图像matlab环境下的直方图分布。 (a)原始图像 (b)原始图像直方图 六.实验报告要求 1、给出实验原理过程及实现代码; 2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2 灰度均衡 一.实验目的 1.熟悉matlab图像处理工具箱中灰度均衡函数的使用; 2.理解和掌握灰度均衡原理和实现方法; 二.实验设备 1.PC机一台; 2.软件matlab; 三.程序设计 在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。 I=imread('cameraman.tif');%读取图像 subplot(2,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(2,2,3),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 a=histeq(I,256); %直方图均衡化,灰度级为256 subplot(2,2,2),imshow(a) %输出均衡化后图像 title('均衡化后图像') %在均衡化后图像中加标题 subplot(2,2,4),imhist(a) %输出均衡化后直方图 title('均衡化后图像直方图') %在均衡化后直方图上加标题 四.实验步骤 1. 启动matlab 双击桌面matlab图标启动matlab环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像, 如:cameraman图像;再调用相应的灰度均衡函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义; 4.运行,观察显示结果; 5.结束运行,退出; 五.实验结果 观察matlab环境下图像灰度均衡结果及直方图分布。 (a)原始图像 (b)均衡化后图像

MATLAB上机考试题(一)

(1)在MATLAB的命令窗口中执行_____命令,将命令窗口的显示内容清空。() A.clear B.clc C.echo off D.cd (2)在MATLAB的命令窗口中执行_____命令,使数据输出显示为十六进制表示。() A.format long B.format rat C.format hex D.format short e (3)下列变量名中_____是合法的。() A.x*y,a,1 B.x\y,a1234 C.end,1 bcx D.char_1,i,j (4)已知x=0:5,则x有_____个元素。() A.5 B.6 C.7 D.8 (5)一下运算符中哪个的优先级最高_____。() A./ B.^ C.~= D.& (6)使用检测函数isnumeric(10)的结果是_____。() A.1 B.0 C.false D.true (7)三维图形中默认视角是_____度。() A.方位角=0 俯仰角=90 B.方位角=90 俯仰角=0 C.方位角=37.5 仰俯角=30 D.方位角=0 仰俯角=180 (8)将符号表达式化简为因式分解因式分解因式分解因式分解形式,使用_____函数。() A.collect B.expand C.horner D.factor (9)运行以下命令,则_____描述是正确的。()>>syms a b c d >>A=[a b;c d] A.A占用的内存小于100B B.创建了5个符号变量 C.A占用的内存是a b c d的总和 D.不存在 (10)已知数组a=[1 2 3;4 5 6;7 8 9],则a(:,end)是指_____元素。 (11)运行命令bitor(8,7)的结果是_____。 (12)运行以下命令: >>x=0:10; >>y1=sin(x); >>y2=5*sin(x); >>y3=[10*sin(x );20*sin(x)]; >>plot(x,y1,x,y2,x,y3) 则在一个图形窗口中,可以看到_____条曲线。 (13)符号表达式“g=sym(sin(a*z)+cos(w*v))”中的自由符号变量是_____。 (14)运行以下命令: >>syms t >>f1=1/t >>limitf1_r=limit(f1,'t','0','right'); 则函数limitf1_r趋向0的右极限为_____。 15.在MATLAB的命令窗口中执行______命令,使数值5.3显示为5.300000000000000e+000 A. format long B. format long e C. format short D. format short e 16.下列变量名中______是合法的。A.char_1,i,j B.1_1, a.1 C.x\y,a1234 D.end,1bcx 17.已知x=0:9,则x有_____个元素。 A.12 B.11 C.10 D.9 18.产生对角线上为全1其余为0的2行3列矩阵的命令是______ A. ones(2,3) B. ones(3,2) C. eye(2,3) D. eye(3,2) 19.已知数组a= [1 2 3 4 5 6 7 8 9] ,则运行a(:,1)=[]命令后______ A. a变成行向量 B. a数组为2行2列 C. a 数组为3行2列 D. a数组中没有元素3 20.按含义选出各个函数名:表示4舍5入到整数的是____,表示向最接近0取整的是____,表示向最接近-∞取整的是____,表示向最接近∞取整的是_____ A. round(x) B. fix(x) C. floor(x) D. ceil(x) 21.已知a=0:5,b=1:6,下面的运算表达式出错的为______ A. a+b B. a./b C. a’*b D. a*b 22.已知s=’显示”hello”’,则s的元素个数是______ A. 12 B. 9 C. 7 D.18

数字信号处理的MATLAB实现

昆明理工大学信息工程与自动化学院学生实验报告 (2011—2012 学年第二学期) 课程名称:数字信号处理开课实验室:信自楼111 2012 年 5 月 31 日年级、专业、班生医学号姓 名 成绩 实验项目名称数字信号处理的matlab 实现指导教师 教 师 评语教师签名: 年月日 一.实验目的 熟练掌握matlab的基本操作。 了解数字信号处理的MATLAB实现。 二.实验设备 安装有matlab的PC机一台。 三.实验内容 .1.求信号x(n)=cos(6.3Пn/3)+cos(9.7Пn/30)+cos(15.3Пn/30),0≤n≤29的幅度频谱. 2. 用冲击响应不变法设计一个Butterworth低通数字滤波器,要求参数为: Wp=0.2Пαp=1dB Ws=0.3Пαs=15dB 3.用双线性变换法设计一个Chebyshev高通IIR滤波器,要求参数为: Wp=0.6Пαp=1dB Ws=0.4586Пαs=15dB 4.用窗函数法设计一个低通FIR滤波器,要求参数为: Wp=0.2Пαp=0.3dB Ws=0.25Пαs=50dB 5.用频率抽样法设计一个带通FIR滤波器,要求参数为: W1s=0.2П W1p=0.35П W2p=0.65П W2s=0.8П αs=60dB αp=1dB 6.根据 4 点矩形序列,( n ) = [1 1 1 1] 。做 DTFT 变换,再做 4 点 DFT 变换。然后分别补零做 8 点 DFT 及 16 点 DFT。 7.调用filter解差分方程,由系统对u(n)的响应判断稳定性 8编制程序求解下列系统的单位冲激响应和阶跃响应。 y[n]+ 0.75y[n -1]+ 0.125y[n -2] = x[n]- x[n -1] 四.实验源程序 1. n=[0:1:29]; x=cos(6.3*pi*n/30)+cos(9.7*pi*n/30)+cos(15.3*pi*n/30);

数字信号处理MATLAB实验1

实验一熟悉MATLAB环境 一、实验目的 (1)熟悉MATLAB的主要操作命令。 (2)学会简单的矩阵输入和数据读写。 (3)掌握简单的绘图命令。 (4)用MATLAB编程并学会创建函数。 (5)观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1234],B=[345 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出 A、B、C、D、E、F、G。 (2)用MATLAB实现以下序列。 a)x(n)=0.8n0≤n≤15 b)x(n)=e(0.2+3j)n0≤n≤15 c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15 (n)=x(n+16),绘出四个d)将c)中的x(n)扩展为以16为周期的函数x 16 周期。 (n)=x(n+10),绘出四个e)将c)中的x(n)扩展为以10为周期的函数x 10 周期。

(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。 a)x 1(n)=2x(n+2)-x(n-1)-2x(n) b)∑=-=5 1k 2) k n (nx (n) x (4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注。 a)x(t)=sin(2πt)0≤t≤10s b)x(t)=cos(100πt)sin(πt) 0≤t≤4s (5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1

MATLAB中文上机作业

1、给定c 如下,计算运算结果。 1.1 2.2 3.3 4.44321c 0.10.50.30.212233045????????? ?=???????? (a) c (2:end, 2:3:end) (b) b= c ([2 2], [3 3]) (c) e=c(2:3,3:end) (d) d (: , : , 1)=e d (:, : , 2) = e*e 2、给定a 如下,计算运算结果。 (a) a =eye(3)-2; (b) b = [ a(2) 6 4; a ]; (c)a ([1 2], :) = a ([2 2], :); 3、给定以下a, b, c 和d ,计算下列等式的值,若认为运行结果出错,请给出理由。 2112a ???=???? ?? ? ????=1310b [1,2]c = (a) result = a .* c’; (b) result = a * [c c]; (c) result = a .* [c’ c’]; (d) result = a + b * c’; (e) result = a + b .* c 4、一小球从空中下落的位移公式为2 002 1at t v x x + +=,用MATLAB 计算小球在t =5s 时的位置,已知x 0 =10m ,v 0 =15m/s , a=-9.84m/s 2。

5、用MATLAB 语句画出函数x e x y 2.02)(?=在[0,10]的值。 6、(温度转换)设计一个MATLAB 程序,读取一个华氏温度的输入,输出开尔文温度。 华氏温度和开尔文温度的转换关系式可在物理学课本中找到。其关系式为: ()5 ()()32.0273.159 T T = ?+开尔文华氏温度 要求能提示用户输入华氏温度,读取用户键盘输入数据,并最终显示出温度。 7、一个内阻R s =50?,电动势V =120V 的电源驱动一个负载R L 。当R L 为多少时,R L 的功率最大?在这种情况下,功率为多少?画出以R L 为自变量的R L 功率图。 8、电器工程低通滤波电路 图3.8 简单的低通滤波电路 上图是向大家展示了一个简单的低通滤波电路。这个电路是由一个电阻和一个电容组成。输出电压V 0与输入电压V i 的电压比为 V o V i = 11 + j 2πfRC 其中V i 是在频率f 下的正弦输入电压。R 代表电阻,单位为欧姆。C 代表电容,单位为法拉。j 为-1 假设R =16 k ?,电容C =1 μF ,请在同一个图形窗口下分别画出这个滤波器的幅频特性、相频特性曲线,要求幅频特性曲线坐标轴均采用对数坐标,相频特性曲线频率坐标用对数坐标。 9、工程师们经常用分贝或dB 来描述两功率之比。dB 的定义如下 1 2 10 log 10P P dB = P 2是已测量的功率,P 1代表参考功率。 a. 假设参考功率P 1为1mw,编写一个程序,接受一个输入功率P 2并把它转化成为以1mw 为参考功率的dB.(它在工程上有一个特殊单位dBm)。在编写程序时,注意培养好的编程习惯。 b. 写一个程序,创建一个以W 为单位的功率(横坐标),其对应的相对功率(单位为dBm)(纵坐标)的图象。要求画2个图,第1个图象的XY 轴都要用线性轴,而第2图象要用对数-线性 xy 轴。 10、收音接收机.电阻上的电压可通过频率计算出来,公式如下 o R V C L R R V 2 2)1(ωω? +=

数字信号处理基本知识点Matlab实现

数字信号处理(第二版) 绪论 1.4 MATLAB 在信号处理中的应用简介 MATLAB 是美国Mathworks 公司于1984年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理、系统仿真和图形显示于一体,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作。 MATLAB 软件包括五大通用功能:数值计算功能(Numeric ),符号运算功能(Symbolic );数据可视化功能(Graphic ),数据图形文字统一处理功能(Notebook )和建模仿真可视化功能(Simulink )。该软件有三大特点:一是功能强大;二是界面友善、语言自然;三是开放性强。目前,Mathworks 公司已推出30多个应用工具箱。MA TLAB 在线性代数、矩阵分析、数值及优化、数理统计和随机信号分析、电路与系统、系统动力学、信号和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统、以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。 2.10 离散时间信号与系统的Matlab 表示 2.10.1 离散时间信号的表示和运算 1、基本序列的Matlab 表示 单位采样序列 在MA TLAB 中,单位采样序列可以通过编写以下的DTimpulse .m 文件来实现,即 function y=DTimpulse (n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 单位阶跃序列 在MA TLAB 中,单位阶跃序列可以通过编写DTu .m 文件来实现,即 function y=DTu (n) y=n>=0; %当参数为非负时输出1 调用该函数时n 必须为整数或整数向量。 矩形序列 用MA TLAB 表示矩形序列可根据公式()()()N R n u n u n N =--并利用DTu 函数生成,即 function y=DTR(n,N) y=DTu(n)-DTu(n-N); 调用该函数时n 必须为整数或整数向量,N 必须为整数。 实指数序列 用MA TLAB 表示实指数序列()(),n x n a u n n N a R =∈∈,即

相关主题
文本预览
相关文档 最新文档