问题有点复杂哈,希望大侠耐心看完。
1、先产生一个方波
2、由此方波积分出一个三角波
3、方波整流为正方波
4、由这个正方波对三角波进行截取:要求正方波有不同的延时,就是相当于取几个不同部分的三角波,3到4个即可(最好均匀分布在一个周期内哈)(要是可以不用正方波就不用哈,我只要截取的三角波~)
5、对4中截取的三角波进行频谱分析,把几个图放在一起比较~
LZ知道这个真的有点麻烦,LZ是学生,明天要交实验报告了,MATLAB是硬伤...
用MATLAB做一个仿真,关于方波和三角波的,急急急!高分悬赏在线等
答案:1 悬赏:50 手机版
解决时间 2021-04-23 22:39
- 提问者网友:动次大次蹦擦擦
- 2021-04-23 13:20
最佳答案
- 五星知识达人网友:思契十里
- 2021-04-23 13:41
clc;
clear;
close all;
ts=0.005;
t=0:ts:1;%t的取值范围为0到1,间隔0.005取一个点
fs=1/ts;
N=length(t);
y0=square(10*pi*t);%产生一个5Hz的方波
h=cumtrapz(t,y0);%积分产生三角波
z0=h.*y0;%用方波截取
t=t+0.05;
y1=square(10*pi*t);%产生延迟半个周期的方波
z1=h.*y1;%用方波截取
t=t+0.05;
y2=square(10*pi*t);%产生继续延迟半个周期的方波
z2=h.*y2;%用方波截取
t=t+0.05;
y3=square(10*pi*t);%产生继续延迟半个周期的方波
z3=h.*y3;%用方波截取
t=t+0.05;
y4=square(10*pi*t);%产生继续延迟半个周期的方波
z4=h.*y4;%用方波截取
%至此总共产生4组不同部分的三角波
figure(1)
subplot(2,3,1)
plot(t,y0)
subplot(2,3,2)
plot(t,h)
subplot(2,3,3)
plot(t,z1);
subplot(2,3,4)
plot(t,z2)
subplot(2,3,5)
plot(t,z3)
subplot(2,3,6)
plot(t,z4);%画出各个图形
figure(2)
Z1=fftshift(fft(z1));
k=-(N-1)/2:1:(N-1)/2;
subplot(2,4,1),stem(k*fs/N,abs(Z1)*ts),title('幅频')
subplot(2,4,2),plot(k*fs/N,angle(Z1)),title('相频')
Z2=fftshift(fft(z2));
k=-(N-1)/2:1:(N-1)/2;
subplot(2,4,3),stem(k*fs/N,abs(Z2)*ts),title('幅频')
subplot(2,4,4),plot(k*fs/N,angle(Z2)),title('相频')
Z3=fftshift(fft(z2));
k=-(N-1)/2:1:(N-1)/2;
subplot(2,4,5),stem(k*fs/N,abs(Z3)*ts),title('幅频')
subplot(2,4,6),plot(k*fs/N,angle(Z3)),title('相频')
Z4=fftshift(fft(z2));
k=-(N-1)/2:1:(N-1)/2;
subplot(2,4,7),stem(k*fs/N,abs(Z4)*ts),title('幅频')
subplot(2,4,8),plot(k*fs/N,angle(Z4)),title('相频')
我在Matlab上测试成功了 哪里不懂还可以问我 我也是一名学生 我的邮箱jldxyy@163.com 希望采纳
clear;
close all;
ts=0.005;
t=0:ts:1;%t的取值范围为0到1,间隔0.005取一个点
fs=1/ts;
N=length(t);
y0=square(10*pi*t);%产生一个5Hz的方波
h=cumtrapz(t,y0);%积分产生三角波
z0=h.*y0;%用方波截取
t=t+0.05;
y1=square(10*pi*t);%产生延迟半个周期的方波
z1=h.*y1;%用方波截取
t=t+0.05;
y2=square(10*pi*t);%产生继续延迟半个周期的方波
z2=h.*y2;%用方波截取
t=t+0.05;
y3=square(10*pi*t);%产生继续延迟半个周期的方波
z3=h.*y3;%用方波截取
t=t+0.05;
y4=square(10*pi*t);%产生继续延迟半个周期的方波
z4=h.*y4;%用方波截取
%至此总共产生4组不同部分的三角波
figure(1)
subplot(2,3,1)
plot(t,y0)
subplot(2,3,2)
plot(t,h)
subplot(2,3,3)
plot(t,z1);
subplot(2,3,4)
plot(t,z2)
subplot(2,3,5)
plot(t,z3)
subplot(2,3,6)
plot(t,z4);%画出各个图形
figure(2)
Z1=fftshift(fft(z1));
k=-(N-1)/2:1:(N-1)/2;
subplot(2,4,1),stem(k*fs/N,abs(Z1)*ts),title('幅频')
subplot(2,4,2),plot(k*fs/N,angle(Z1)),title('相频')
Z2=fftshift(fft(z2));
k=-(N-1)/2:1:(N-1)/2;
subplot(2,4,3),stem(k*fs/N,abs(Z2)*ts),title('幅频')
subplot(2,4,4),plot(k*fs/N,angle(Z2)),title('相频')
Z3=fftshift(fft(z2));
k=-(N-1)/2:1:(N-1)/2;
subplot(2,4,5),stem(k*fs/N,abs(Z3)*ts),title('幅频')
subplot(2,4,6),plot(k*fs/N,angle(Z3)),title('相频')
Z4=fftshift(fft(z2));
k=-(N-1)/2:1:(N-1)/2;
subplot(2,4,7),stem(k*fs/N,abs(Z4)*ts),title('幅频')
subplot(2,4,8),plot(k*fs/N,angle(Z4)),title('相频')
我在Matlab上测试成功了 哪里不懂还可以问我 我也是一名学生 我的邮箱jldxyy@163.com 希望采纳
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯