與
pulstran
現在。
關於pulstran
的簡短文檔。語法是:
y = pulstran(t, d, function_handle, p1, p2, ..)
和t
是用於計算脈衝(也總時間和輸出的尺寸),d
是脈衝中心(移位增量)和p1, p2, ..
是附加參數的函數的時間步長。
所以輸出結果類似於d
所有元素的總和function(t+d(i), p1, p2, ..)
。
下面是代碼:
function Untitled()
[t, y] = FreqGen(5e2, 20e3, 1, 1, 0.01, 0.1);
figure;
plot(t(1:3e3), y(1:3e3));
xlabel('time [s]');
end
function [t, y] = FreqGen(f, fs, T, A, Pulseduration, Interpulseduration)
% f - frequency of sine wave [Hz], fs - sampling frequency [Hz], T - total
% duration [s], A - amplitude of sine wave, Pulseduration [s],
% Interpulseduration [s]
% time steps
t = 0 : (1/fs) : T;
% pulse center steps
d = 0 : Interpulseduration : T;
% use pulstrans
y = pulstran(t, d, @my_pulse, A, f, Pulseduration);
end
function y = my_pulse(t, A, f, Tend)
% Sine pulse from 0 to Tend
y = zeros(size(t));
tx = t > 0 & t < Tend;
y(tx) = A * sin(2 * pi * f * t(tx));
end
這雖然比previous answer慢一點。
這沒有意義; 5kHz波形的週期是0.2ms,即0.0002秒。這與你引用的數字相符合的程度如何? – 2015-02-09 21:55:23
我可能是錯的。 MOre的一般問題是如何使用pulsetran生成具有另一個自定義波函數的波形? – Foreverniu 2015-02-09 22:01:17
根據您的圖表,您希望生成頻率爲10 Hz或0.1 s的波形。 – rayryeng 2015-02-09 22:10:31