Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

fft coefficient and dbm?

Status
Not open for further replies.

david753

Full Member level 1
Joined
Jan 9, 2005
Messages
96
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
856
fft dbm

I am implementing the Digital Fourier Transform now.
After transfering, I got the coefficient of each of freqencies.
But, I was confused what the relationship between the coefficient and dbm of real signal.
For example, there is a signal with 2Vp-p amplitude and 10Hz input.
The signal power is calculated to 10log((2/(2*sqrt(2)))^2/50)=10dbm.
But, the coefficient of 10Hz is about 512.
How to transfer the coefficient value to power unit?
Appreciated.
 

fft correct dbm matlab

As far I understand your analyzer displays 2Vpp sine over 50Ohm impedance signal as 512. 2Vpp over 50Ohm is 16 dBm. => Reading of 1 coresponds to 1/32 dBm ( 0.03125 dBm )
 

fft amplitude relative number of points

Hi,
Amplitude of the FFT (without internediate scaling) gives the power. However the definition of the power should be carefully verified. But if you use two results from FFT for relative comparison you get correct values.

You can check in matlab -- a signal with amplitude 1 and number of points equal to 16 and at exact bin frequency gives you -- maximum value of 16 in FFT. So you have to normalize by number of points.

brmadhukar
 

fft voltage to dbm

N=512; % point numbers
f=11;
fs=44000; %sampling freq.

t=0:N-1;
q=1;
for f=11:11:22000 % freq. varies
y=sin(2*pi*f*t/fs);
fy1=zeros(1,N/2);
fy2=zeros(1,N/2);

for j=1:N/2
for i=1:N
fy1(j)=fy1(j)+y(i)*cos(2*pi*j*i/N);
fy2(j)=fy2(j)+y(i)*sin(2*pi*j*i/N);
end
end

fy_sum=sqrt(fy1.*fy1+fy2.*fy2); % complex value
fy_sum1=fy_sum.^2/(N/2);
%plot((1:N/2)/(N/2)*(fs/2),fy_sum);

total_sum=sum(fy_sum1);

checkfreq(q)=f;
checkmax(q)=max(fy_sum1);
checklist(q)=total_sum;
q=q+1;
end;

checkfreqb=checkfreq';
checkmaxb=checkmax';
checklistb=checklist';
checkall=cat(2,checkfreqb,checkmaxb,checklistb);

TITLE(total_sum);

============================
as above, the code is executed in matlab.
if you check the checkall array of matlab, you will find the result are varies in both max coefficient and total coefficient when the input freq are varies.
I was confused how to transfer the coefficient to dbm value.
 

fft coefficient

Hi brmadhukar

Square of the FFT amplitude gives the power because the FFT is like voltage.

Regards
 

Hi Circuit seller,
Thanks. u r right. I should have used (amplitude)^2.
brm
 

FFT is easy to understand it, if we just see its theory formula.
But, if we want to implement to be a practical Instrument, it will have a little bit challenge.

Here is my problems that I encounter.
Check it out.
**broken link removed**
 

Hi

The answer is the Window Type.
You have used a rectangular window, and for this window position of the input signal relative to position of frequency bins is important and changes the results.
Before performing a FFT apply a HANNIG or BLACKMAN window to the signal, you will see correct results.

Regards
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top