필터 지우기
필터 지우기

ascribe zeros to an array

조회 수: 2 (최근 30일)
Nuks Kar
Nuks Kar 2023년 9월 23일
편집: Bruno Luong 2023년 9월 24일
I am new to matlab. I want to ascribe zeros to frequencies going from 1001 to 2048 after having built a spectrum from 1 to 1000.
How do I do it please.
f= 1001:2048;
  댓글 수: 2
Rik
Rik 2023년 9월 23일

Have a read here and here. It will greatly improve your chances of getting an answer.

If you have trouble with Matlab basics you may consider doing the Onramp tutorial (which is provided for free by Mathworks).

Nuks Kar
Nuks Kar 2023년 9월 24일
Thank you very much.

댓글을 달려면 로그인하십시오.

답변 (2개)

Walter Roberson
Walter Roberson 2023년 9월 23일
frequencies = linspace(0, 2400, 250);
spectrum = rand(size(frequencies));
subplot(2,1,1); plot(frequencies, spectrum); title('before zeroing');
spectrum(frequencies >= 1001 & frequencies <= 2048) = 0;
subplot(2,1,2); plot(frequencies, spectrum); title('after zeroing')

Bruno Luong
Bruno Luong 2023년 9월 24일
편집: Bruno Luong 2023년 9월 24일
To pad a vector with zeros you only need to set the last-element of the extended vector to 0
f=rand(1,5) % 1000 in your case
f = 1×5
0.7012 0.5664 0.9478 0.7397 0.8932
fpad = f; fpad(8)=0; fpad % 2048 in your case
fpad = 1×8
0.7012 0.5664 0.9478 0.7397 0.8932 0 0 0
Note that is you call fft/ifft on fpad, you don't even need to construct it, fft and ifft has the length in second argument that you can use to do fft on padded array without explicitly constructing it. Both of these return the same result
fft(fpad)
ans =
3.8485 + 0.0000i -0.3146 - 1.8714i 0.6467 + 0.1733i -0.0694 + 0.0243i 1.2362 + 0.0000i -0.0694 - 0.0243i 0.6467 - 0.1733i -0.3146 + 1.8714i
fft(f,8)
ans =
3.8485 + 0.0000i -0.3146 - 1.8714i 0.6467 + 0.1733i -0.0694 + 0.0243i 1.2362 + 0.0000i -0.0694 - 0.0243i 0.6467 - 0.1733i -0.3146 + 1.8714i

카테고리

Help CenterFile Exchange에서 Octave에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by