在MatLab中生成半正弦

tnkciper  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(306)

我有时间为0:2*T的半正弦:

Rc = 1e3;      
T = 1/Rc;      
Fs = 2e3;      % sampling frequency
dt = 1/Fs;
over = Fs/Rc;   % sampling factor - 2
sps = 10;  
time = 0:dt/sps:2*T;
half_Sine = sin(pi*time/(2*T)).^3; 
figure(1);
plot(time,half_Sine, 'b--o');
grid on
 xlabel('time','FontSize',13); 
ylabel('a(t)','FontSize',13);

但我需要时间T/2<=时间<=T/2,并将时间轴表示为时间/T。当我这样做时

time = -T/2:dt/sps:T/2;

这给了我不到半个正弦。所以我需要这样的东西:

ijxebb2r

ijxebb2r1#

1.-sin函数上的立方体阻止生成的曲线图具有y轴对称性。

Rc = 1e3;      
T = 1/Rc;      
Fs = 2e3;      % sampling frequency
dt = 1/Fs;
over = Fs/Rc;   % sampling factor - 2
sps = 10;  
t =-2*T :dt/sps:2*T;
y= sin(pi*t/(2*T)).^3; 
figure;
plot(t,y, 'b--o');
grid on
xlabel('time','FontSize',13); 
ylabel('a(t)','FontSize',13);

2.-要在t=0上使用max,您需要使用cos函数,而不是sin,并且需要使用正方形,而不是立方体

Rc = 1e3;      
T = 1/Rc;      
Fs = 2e3;      % sampling frequency
dt = 1/Fs;
over = Fs/Rc;   % sampling factor - 2
sps = 10;  
t =-T :dt/sps:T;
y= cos(pi*t/(2*T)).^2; 
figure(1);
plot(t,y, 'b--o');
grid on
xlabel('time','FontSize',13); 
ylabel('a(t)','FontSize',13);

现在你有了[-T T]图,

3.-您需要的间隔为[-T/2 T/2]
T=-T/2:dt/sps:t/2;y=cos(pit/(2T))。^2;
图;Plot(t,y,‘b--o’);GRID on xLabel(‘time’,‘FontSize’,13);yLabel(‘a(T)’,‘FontSize’,13);

4.-你提到你想使时间轴正常化。
如果修改t除以T,得到的曲线图将是一个非常窄的时间跨度,在t=0和几乎不变的y=1附近。
相反,只需按以下方式修改x轴阳极

figure;
hp1=plot(t,y, 'b--o');
hp1.XData=hp1.XData/T
grid on
xlabel('time/T','FontSize',13); 
ylabel('a(t)','FontSize',13);

相关问题