frequency shift property of the of FT
51 次查看(过去 30 天)
显示 更早的评论
Dear All,
I have a question, maybe it is a basic for someone, but i am still stuck on it for few days now..
i want to apply the modulation/ Frequency shifting property of the Fourier transform ----> F{exp(j2πf0t)x(t)}=X(f−f0)
I have a signal with size of (3072000 1) it is a pulse signal not a sine wave.
with the following parameters:
Lc = 500; % Code length of the signal
Tc = 2e-9; % Time for which a constant phase applied in the transmitter
so i was trying to do it as the following:
nfft=length(signal);
shift= -500000000;
T= 0:Tc/2:1-1/Tc; % time vector
mult= exp(-i*2*pi*shift*T);
shiftsignal=fft(signal.*mult);
But it gives me an empty vector because of the time vector!!
Can someone help me with that? also, how can i chose the correct time vector for this example.
0 个评论
回答(4 个)
Jon
2020-8-11
As currently written you are trying to produce a time vector starting at 0 with increments of 1e-9 (Tc/2) up to a value of -5e8 (1 - 1/Tc). This is empty because the end value is smaller than the start.
This probably wasn't what you intended. What starting value, increment, and final value do you actually want for Tc?
Were you trying to shift the result by an amount 1/Tc? If so you need to use parentheses like this
T= (0:Tc/2:1) - 1/Tc;
2 个评论
Jon
2020-8-28
Sorry I haven't been on MATLAB answers for awhile.
In general if I want a vector that starts at t1 and ends at t2 in increments of dT you would use:
t = t1:dT:t2
I'm not really clear on your notation, but I think you should be able to adapt the above line of code to your situation.
If you are running out of memory, I would suspect that either your final time is too large or your increment is too small so that you are generating a vector that has many more elements than you really want.
Sk Group
2021-10-27
Frequency shifting Prove: DFT{x(n)e^(j(2*pi/N)nl = X(K-l)
For detailed post and complete code visit: https://www.swebllc.com/frequency-shifting-property-in-matlab- complete-prove-code-output/
0 个评论
JAHNAVI
2023-9-26
clc
clear all
close all
syms t w
x1 = exp(-t)*heaviside(t); % try with different input signals and obsere the output
X1 = fourier(x1);
disp("Fourier transform of signal 1")
X1
x2=dirac(t);% try with different input signals and obsere the output
X2=fourier(x2);
disp("Fourier transform of signal 2")
X2
disp("Sum of Fourier transoforms of signal 1 and signal2")
X1+X2
x=x1+x2;
X=fourier(x);
disp("Fourier transform of sum of signal 1 and signal 2")
X
syms t a
x = exp(-t)*heaviside(t)*exp(a*t);
X = fourier(x);
disp("Fourier Transform of frequency shift right signal is")
X
0 个评论
JAHNAVI
2023-9-26
clc
clear all
close all
syms t w
x1 = exp(-t)*heaviside(t); % try with different input signals and obsere the output
X1 = fourier(x1);
disp("Fourier transform of signal 1")
X1
x2=dirac(t);% try with different input signals and obsere the output
X2=fourier(x2);
disp("Fourier transform of signal 2")
X2
disp("Sum of Fourier transoforms of signal 1 and signal2")
X1+X2
x=x1+x2;
X=fourier(x);
disp("Fourier transform of sum of signal 1 and signal 2")
X
syms t a
x = exp(-t)*heaviside(t)*exp(-a*t);% try with different input signals and obsere the output
X = fourier(x);
disp("Fourier Transform of frequency shift left signal is")
X
syms t a
x = exp(-t)*heaviside(t)*exp(a*t);
X = fourier(x);
disp("Fourier Transform of frequency shift right signal is")
X
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!