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.

Power of Periodic and Non-Periodic(White Gaussian Noise) Signals using FFT

Status
Not open for further replies.

von Moltke

Junior Member level 1
Joined
Sep 11, 2012
Messages
18
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Turkey-Ankara
Activity points
1,439
Hello all,

I want to determine the power level (dB amp) of (supposed to be wgn) random signal using oscilloscope data. I have compiled a code to do the job but when tried to verify my code for several different signals (periodic sinus, random gaussian) generated on MATLAB, I have seen that the code yields different power levels for different signals.

For example:

I have the following:

y10 = 10 periods of a 50 MHz single tone signal samples with 0 dB power sampled at 1 GHz generated by MATLAB,
y50 = 50 periods of a 50 MHz single tone signal samples with 0 dB power sampled at 1 GHz generated by MATLAB,
n4 = 0 dB (Variance=1) random sequence of length 10^4 generated by randn command of MATLAB,
n5 = 0 dB (Variance=1) random sequence of length 10^5 generated by randn command of MATLAB,
n6 = 0 dB (Variance=1) random sequence of length 10^6 generated by randn command of MATLAB,

But when I run my code for each signal to show me the fft plot I come across the following: 1M matlab data.png10 sinus.png10k matlab data.png50 sinus.png100k matlab data.png

My Code is below:

---
clear all;
close all;
set(0,'DefaultFigureWindowStyle','docked');

Fs=1e9;
R=1; %Resistance Value is 1 Ohm for MATLAB generated sequences

n5=randn(1e5,1);
n6=randn(1e6,1);
n4=randn(1e4,1);

y50=1.4142*sin(2*pi*(0:1/20:50));%50 periods of Sine Wave
y10=1.4142*sin(2*pi*(0:1/20:10));%10 periods of Sine Wave

clc

y=n6;

L = length(y);
NFFT = (L);
Y= fft(y,NFFT)/(L);
YdB=20*log10(1.4142*abs(Y)/sqrt(R));
f = Fs/2*linspace(0,1,round(NFFT/2)+1);

plot(f/1e6,YdB(1:round(NFFT/2)+1))
title('10^6 Length Random Data Single-Sided Spectrum')
xlabel('Frequency (MHz)')
ylabel('|Y(f)|dBW = 10log(Volt ^2/Ohm)')

---

Why do I see that for increasing length of sequences in the Random Sequences, I loose the power of signal.

I can correct that by dividing fft result by sqrt(L) (in the CODE LINE:Y= fft(y,NFFT)/(L);

but that changes the periodic signal power level then. Why do I see that? What am I doing wrong?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top