
带的fft函数冲突,建议改名后重新存盘
(2)最好缺两end
改后的程序:
1),stem((0:7),abs(hc(1:8)));
grid;
title('8点正三角波的幅频特性');
hd(1:8)=fft(xd(1:8));
subplot(212),stem((0:7),abs(hd(1:8)));
grid;
title('8点反三角波的幅频特性');
elseif aa==2
subplot(211),stem((0:15),xc(1:16));
title('8点正三角波补0到16点后的时间波形');
grid;
subplot(212),stem((0:15),xd(1:16));
title('8点反三角波补0到16点后的时间波形');
grid;
elseif aa==3
hc(1:16)=fft(xc(1:16));
subplot(211),stem((0:15),abs(hc(1:16)));
title('8点正三角波补0到16点后的幅频特性');
end
end
s=tf('s');
G=8(10s+1)/(s(s^2+s+1)(05s+1));
bode(G)
手绘结果
已知系统的开环传递函数为:G(s)=10/(3s^2+s+1),用matlab绘制系统的伯德图。
解:matlab的计算程序:
》num=[10]; %分子的常数
》den=[3 2 1]; %分母的系数;
》bode(num,den)就可以得到下面那两幅图了, 你用matlab演示的时候,不要复制我的,你自己写一遍。
我之前做滤波器总结的函数,希望能帮到你,zpk分别
为零点极点增益
% [b,a]=zp2tf(z,p,k) 由零极点和增益算出系统函数的a b
系数
% [h,w]=freqs(b,a) 模拟频率响应:根据模拟系统函数
得出模拟频率响应
% [h,w]=freqz(b,a,n) 数字频率响应:给出[0,pi)区间上n
点等分的频率响应
% plot(w,abs(h)); 画出幅频响应曲线
% plot(w,angle(h)); 画出相频响应曲线
clc;clear all;
%归一化模拟切比雪夫I型低通滤波器的设计
Wp=2pi1000;Ws=2pi1500;rp=3;rs=30;%设计滤波器的参数
wp=1;ws=Ws/Wp; %频带变换得到归一化滤波器
[N,wc]=cheb1ord(wp,ws,rp,rs,'s'); %计算滤波器阶数和3dB截止频率
[z,p,k]=cheb1ap(N,rp); %计算归一化滤波器的零极点
[b,a]=zp2tf(z,p,k); %计算归一化滤波器系统函数的系数
w0=0:005pi:2pi;
[h0,w0]=freqs(b,a,w0); %求频率响应
figure(1)
plot(w0,20log10(abs(h0)),'k');
title('归一化模拟且比雪夫I型低通滤波器');
xlabel('频率f/Hz');ylabel('幅度/dB');grid;
%一般低通切比雪夫低通滤波器的设计
[B,A]=lp2lp(b,a,Wp); %将归一化滤波器转换为一般模拟滤波器
w1=0:2pi100:2pi30000;
[h1,w1]=freqs(B,A,w1);
figure(2)
plot(w1/(2pi),20log10(abs(h1)),'k');
title('一般模拟且比雪夫I型低通滤波器');
xlabel('频率f/Hz');ylabel('幅度/dB');grid;
%冲激响应不变法设计低通巴特沃斯数字滤波器
Fs=10000; %采样频率
Wp1=Wp/Fs;Ws1=Ws/Fs;
rp1=3;rs1=30; %设计滤波器的参数
[N1,Wn]=cheb1ord(Wp,Ws,rp1,rs1,'s') %计算滤波器阶数
[b1,a1]=cheby1(N1,rp1,Wn,'s'); %样本AF的系数函数的分子分母系数
[bz,az]=impinvar(b1,a1,Fs); %冲激响应不变法从AF到DF变换
[C1,B1,A1]=dir2par(bz,az) %直接形式转换为并联型
w2=[Wp1,Ws1]; %数字临界频率
[H,f]=freqz(bz,az); %绘制数字滤波器的幅频特性和相频特性
[db,mag,pha,grd,f]=freqz_m(bz,az); %扩展函数检验滤波器的其他特性
figure(3)
plot(f/pi,db,'k');
title('冲激响应不变法设计低通切比雪夫I型数字滤波器');
xlabel('角频率w/pi');ylabel('振幅/dB');
axis([0,035,-30,5]);grid;
%用设计好的滤波器对信号进滤波处理
figure(4)
f1=500;f2=4000; %输入信号的频率
N=100; %数据长度
dt=1/Fs;n=0:N-1;t=ndt; %采样间隔和时间序列
x=sin(2pif1t)+05cos(2pif2t); %输入信号
subplot(2,1,1),plot(t,x),title('输入信号');
y=filtfilt(bz,az,x); %用滤波器进行滤波处理
y1=filter(bz,az,x); %进行滤波处理
subplot(2,1,2),plot(t,y,t,y1,':'),title('输出信号');xlabel('时间/s');
legend('filtfilt','filter') %加图例
freqz_mm文件
function[db,mag,pha,grd,w]=freqz_m(b,a)
[H,w]=freqz(b,a,1000,'whole');
mag=abs(H);
db=20log10((mag+eps)/max(mag));
pha=angle(H);
grd=grpdelay(pha);
dir2parm文件
function [C,B,A] = dir2par(b,a)
M=length(b);N=length(a);
[r1,p1,C]=residuez(b,a);
p=cplxpair(p1,10000000eps);
I=cplxcomp(p1,p);
r=r1(I);
K=floor(N/2);B=zeros(K,2);A=zeros(K,3);
if K2==N;
for i=1:2:N-2
Brow=r(i:1:i+1,:);
Arow=p(i:1:i+1,:);
[Brow,Arow]=residuez(Brow,Arow,[]);
B(fix((i+1)/2),:)=real(Brow);
A(fix((i+1)/2),:)=real(Arow);
end
[Brow,Arow]=residuez(r(N-1),p(N-1),[]);
B(K,:)=[real(Brow) 0];A(K,:)=[real(Arow) 0];
else
for i=1:2:N-1
Brow=r(i:1:i+1,:);
Arow=p(i:1:i+1,:);
[Brow,Arow]=residuez(Brow,Arow,[]);
B(fix((i+1)/2),:)=real(Brow);
A(fix((i+1)/2),:)=real(Arow);
end
end
cplxcompm文件
function I=cplxcomp(p1,p2)
I=[];
for j=1:1:length(p2)
for i=1:1:length(p1)
if(abs(p1(i)-p2(j))<00001)
I=[I,i];
end
end
end
I=I';
以上就是关于二维的FFT的MATLAB程序,急需,非常感谢全部的内容,包括:二维的FFT的MATLAB程序,急需,非常感谢、用matlab绘制系统对数渐近幅频特性曲线、RLC电路幅频特性曲线怎么画等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)