Matlab - stosunek sygnał szum

Odpowiedz Nowy wątek
2006-09-23 13:30
0

Witam,

Mam taki, banalny pewnie problem.

Otoz mam w wygenerowany w matlabie sygnał zmodulowany częstotliwościowo:

y = chirp(T,f0,t2,f1,'quadratic'); 

Nastepnie do sygnału jest dodawany szum w taki sposob:

szum = randn(size(y));
y = y + k*szum; 

Mam teraz policzyc stosunek sygnał - szum, czyli SNR (stosunek mocy szygnału do mocy szumu).

Podpowie ktos jak najprosciej to teraz wykonac w Matlabie?</wiki>

Pozostało 580 znaków

2006-09-23 15:55
0

Hmm jeżeli chodzi Ci o to jak, to tu masz wzór:
user image
A - to wartość RMS sygnału/szumu.

Pozostało 580 znaków

2006-09-23 16:02
0

Nie no, znam definicje, tylko chodzi mi o to jak w matlabie ta moc policzyc, czyli jakiej funkjcji moge użyc.

Mam sobie y, ktory jest sygnałem zmodulowanym, w tym wypadku sygnał nieokresowy z kwadratowo narastajaca czestotliwoscia z dodanym szumem gaussowskim o odchyleniu standardowym k i wartosci oczekiwanej 0.

No i teraz, jakiej funkcji użyc zeby policzyc: moc sygnału i moc szumu... Wiem ze banalne pewnie, ale jestem juz tak skolowany ze sam nie wiem :|

[edit]
Sklecilem cos takiego:

rms = norm(y)/sqrt(length(y));
  rms_szum = norm(szum)/sqrt(length(szum));
 SNR = 20*log10(rms/rms_szum)

Tyle, ze cos mi tu nie pasuje, to chyba nie tak ma byc :/

Pozostało 580 znaków

2006-09-23 21:34
0
othello napisał(a)

Tyle, ze cos mi tu nie pasuje, to chyba nie tak ma byc :/

A co jest nie tak?

Pozostało 580 znaków

2006-09-23 22:48
0

Hmm za kazdym razem otrzymuje inny wynik, niby szum jest losowy, ale skoro daje taka sama wariancje szumu to chyba i SNR nie powinien sie zmieniac?

Pozostało 580 znaków

2006-09-23 23:03
0

No to zależy jakiego rzędu są to różnice. Jeżeli szum za każdym pomiarem jest od nowa generowany to oczywistym jest, że i wynik będzie inny (w pewnych granicach).

PS. czy przypadkiem sygnał y nie powinien być czysty - niezaszumiony?

Pozostało 580 znaków

2006-09-23 23:13
0

PS. czy przypadkiem sygnał y nie powinien być czysty - niezaszumiony?

Racja, glupote walnalem.

Mam teraz tak:

yn = chirp(T,f0,t2,f1,'quadratic');
szum = randn(size(yn));
y = yn + k*szum;

rms = norm(yn)/sqrt(length(yn));
rms_szum = norm(szum)/sqrt(length(szum));
SNR = 20*log10(rms/rms_szum)

Otrzymuje za kazdym razem troche rozniace sie wartosci w granicach -2.3... - 2.6 dla k=0.8.

Czy taki rzad wartosci jest ok?

Pozostało 580 znaków

2006-09-23 23:59
0

Czy taki rzad wartosci jest ok?

Rząd wartości jest od -oo do +oo, no ale różnice całkiem prawdopodobne :) Zresztą k=0.8 więc szum jest o ~-2dB cichszy...

Pozostało 580 znaków

2006-09-24 17:23
0

Ok...... wprawdzie byloby to bardziej elegancko gdybym policzyl moc, ale jezeli wynik dobry to w sumie niewazne.

Pozostało 580 znaków

2006-09-24 21:24
0

wprawdzie byloby to bardziej elegancko gdybym policzyl moc

Hmm jak rozumiesz pojęcie moc w sygnale cyfrowym??? ;)

Pozostało 580 znaków

2006-09-25 07:34
0

Ja to mam traktowac jako sygnał analogowy, a nie cyfrowy. Po prostu, mam zmodulowany czestotliwosciowo sygnał i już.

Tylko reprezentacja w Matlabie jest dyskretna, bo musi byc.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0