From: drowe67 Date: Thu, 10 Mar 2016 00:44:47 +0000 (+0000) Subject: about to refactor X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=9eeb22d1bf862470b83326cb46833ef5c5870ed3;p=freetel-svn-tracking.git about to refactor git-svn-id: https://svn.code.sf.net/p/freetel/code@2722 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/octave/nf_from_gr.m b/codec2-dev/octave/nf_from_gr.m index 59cc293f..229387c9 100644 --- a/codec2-dev/octave/nf_from_gr.m +++ b/codec2-dev/octave/nf_from_gr.m @@ -1,18 +1,43 @@ % nf_from_gr.m % David Rowe Mar 2016 +% +% Calculate NF from GNU Radio ...IQIQ... (32 bit float) sample files -% TODO: [ ] synthetic signal to test -% [ ] if sine wave power goes up what happens? +% Take one sample with a -100dBm input carrier +% Take another sample with no signal (just rx noise) -p = load_comp("~/Desktop/neg100dBm_2MHz.bin"); -pn = load_comp("~/Desktop/nosignal_2MHz.bin"); +% HackRF -------------------------- -Pin = -100; % rx power input of p in dBm -Fs = 2E6; % sample rate in Hz -st = 100E3; en = 300E3; % frequencies window to use +%p = load_comp("~/Desktop/nf/hackrf_100dbm_4MHz.bin"); +%pn = load_comp("~/Desktop/nf/hackrf_nosignal_4MHz.bin"); +%Fs = 4E6; % sample rate in Hz +%st = 180E3; en = 400E3; % frequencies window to use + +% RTL-SDR -------------------------- + +%p = load_comp("~/Desktop/nf/neg100dBm_2MHz.bin"); +%pn = load_comp("~/Desktop/nf/nosignal_2MHz.bin"); +%Fs = 2E6; % sample rate in Hz +%st = 100E3; en = 300E3; % frequencies window to use + +% AirSpy ------------------------- + +p = load_comp("~/Desktop/nf/airspy_gain_-100dBm_2.5MHz.bin"); +pn = load_comp("~/Desktop/nf/airspy_gain_nosig_2.5MHz.bin"); +Fs = 2.5E6; % sample rate in Hz +st = 795E3; en = 820E3; % frequencies window to use + +% Fun Cube Dongle Pro Plus ------------------------- + +%p = load_comp("~/Desktop/nf/fcdpp_100dbm_192khz.bin"); +%pn = load_comp("~/Desktop/nf/fcdpp_nosig_192khz.bin"); +%Fs = 192E3; % sample rate in Hz +%st = 25E3; en = 125E3; % frequencies window to use + +Pin = -100; % rx power input of p in dBm -P = fft(p100(1:Fs)); -N = fft(pns(1:Fs)); +P = fft(p(1:Fs)); +N = fft(pn(1:Fs)); PdB = 10*log10(abs(P)); NdB = 10*log10(abs(N)); @@ -26,8 +51,8 @@ plot(st:en, PdB(st:en)); subplot(212) plot(st:en, NdB(st:en)); -P = 10*log10(P_pwr); -No = 10*log10(No_pwr); -G = P - Pin; -NF = No - G + 174; -printf("Pin: %4.1f Pout: %4.1f G: %4.1f NF: %3.1f\n", Pin, P, G, NF); +P_dB = 10*log10(var(P(st:en))); +No_dB = 10*log10(var(N(st:en))/(en-st)); +G = P_dB - Pin; +NF = No_dB - G + 174; +printf("Pin: %4.1f Pout: %4.1f G: %4.1f NF: %3.1f\n", Pin, P_dB, G, NF);