программный перенос спектра
Добавлено: 20 июн 2018, 14:34
Доброго времени суток!
Возникла задача реализовать программный сдвиг спектра сигнала на определенную частоту. Сигнал у меня квадратурный, снесенный на нулевую ПЧ, частота дискретизации известна. В теории данная задача решается домножением сигнала на комплексную экспоненту с необходимой частотой сдвига в аргументе, однако на практике возникли проблемы. Как попытался сделать я: очередную пару квадратурных отсчетов я домножаю на комплексную экспоненту, представленную в тригонометрическом виде, с учетом частоты дискретизации входного сигнала и желаемого частотного сдвига. На прикрепленной картинке (картинка 1) представлен кусок кода, выполняющий вышеописанные действия. Здесь: temp_32f_re и temp_32f_im массивы с квадратурными и синфазными отсчетами входного сигнала, time - целочисленный счетчик времени, in_sample_rate - частота дискретизации входного сигнала. Для данного случая сдвиг спектра осуществляется на 100 кГц вправо. В результате получается сигнал, спектр которого (картинка 2) вообще никак не похож на спектр начального сигнала (картинка 3). Что я делаю не так?
Возникла задача реализовать программный сдвиг спектра сигнала на определенную частоту. Сигнал у меня квадратурный, снесенный на нулевую ПЧ, частота дискретизации известна. В теории данная задача решается домножением сигнала на комплексную экспоненту с необходимой частотой сдвига в аргументе, однако на практике возникли проблемы. Как попытался сделать я: очередную пару квадратурных отсчетов я домножаю на комплексную экспоненту, представленную в тригонометрическом виде, с учетом частоты дискретизации входного сигнала и желаемого частотного сдвига. На прикрепленной картинке (картинка 1) представлен кусок кода, выполняющий вышеописанные действия. Здесь: temp_32f_re и temp_32f_im массивы с квадратурными и синфазными отсчетами входного сигнала, time - целочисленный счетчик времени, in_sample_rate - частота дискретизации входного сигнала. Для данного случая сдвиг спектра осуществляется на 100 кГц вправо. В результате получается сигнал, спектр которого (картинка 2) вообще никак не похож на спектр начального сигнала (картинка 3). Что я делаю не так?