How to generate a vector of a shifted impulse function?
15 ビュー (過去 30 日間)
古いコメントを表示
Hello, Suppose we have a time vector x=0:0.1: 50. I would like to have a delta function at a non-zero position, say at 25 with unit height (or any other scaled version of it).
MATLAB has a function d = dirac(x)
It generates dirac at x=0. If we write, d=dirac(x-25), it does not shift the impulse function like the H=heaviside(t-25) translates the heaviside function at 25.
I tried differentiating the translated heaviside function but I get 0.5 0.5 at the desired location instead of 1 at 25, no matter what the sampling frequency is.
Is there are a better way to do
(a) Generate a vector unit delta at a non-zero position
(b) Differentiate translated Heaviside and get a shifted delta at the desired position.
Thanks.
0 件のコメント
採用された回答
Star Strider
2020 年 7 月 27 日
‘If we write, d=dirac(x-25), it does not shift the impulse function like the H=heaviside(t-25) translates the heaviside function at 25.’
It does, actually.
Consider:
x = 0:0.1:50;
d = dirac(x - 25);
nzdidx = find(d>0) % Index
dnzd = d(nzdidx) % Value
producing:
nzdidx =
251
dnzd =
Inf
So it will not appear on the plot, since it has infinite amplitude and 0 width, integrating to an area of 1.
.
6 件のコメント
Star Strider
2020 年 7 月 27 日
As always, my pleasure!
As for upgrading to R2020a, see the Release Notes to see if it would be of any benefit to you. (Note that Update 4 is current.)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Floating-Point to Fixed-Point Conversion についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!