URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10223
[ Назад ]

Исходное сообщение
"Octave"

Отправлено redd , 02-Май-18 09:33 
Можно ли считать что Octave аналог матлаб, или все таки матлаб лучше ???

Содержание

Сообщения в этом обсуждении
"Octave"
Отправлено Andrey Mitrofanov , 02-Май-18 09:40 
> Можно ли считать что Octave аналог матлаб, или все таки матлаб лучше
> ???

СложныйЮ философский!, вопрос.

Можно ли посмотреть слова "аналог" и "лучше" в словарях, или https://ru.wikipedia.org/wiki/%D0%9B%D0%... всё-таки лучше https://ru.wikipedia.org/wiki/%D0%9F%D1%... спросить у тех, кто в курсе, -- сразу https://ru.wikipedia.org/wiki/%D0%9B%D0%... на форумах?....


"Octave"
Отправлено redd , 02-Май-18 09:51 
Лана понял, придется скачать матлаб и проверить )

"Octave"
Отправлено redd , 11-Май-18 17:22 
Вот программа для Matlab , запустилась на Octave без правок ....


close all; clear all; clc;

%% ИСХОДНЫЕ ДАННЫЕ
Fs = 100E3;         % частота дискретизации
f0 = 10E3;          % несущая частота

N = 16384;          % количество дискретных отсчетов
t = (0:N-1)/Fs;     % дискретное время.
frq = Fs*(0:N-1)/N - Fs/2;  % дискретная частота

%% ФОРМИРУЮ АМ НА ЧАСТОТЕ f0

sm  = cos(2*pi*100*t);  % модулирующий сигнал
mAM = 0.9;              % глубина АМ

s = (1+mAM.*sm).*cos(2*pi*f0*t); % AM сигнал на частоте f0

% рассчитываю спектр исходного сигнала и вывожу на график
S = fftshift(abs(fft(s)));
figure; subplot(211);   plot(t, s);
                        title('AM signal');
                        xlabel('time, sec');
                        
        subplot(212);   plot(frq, S);
                        title('spectr of AM signal');
                        xlabel('frequency, kHz');
                        
%% ПЕРЕНОС ПРИ ПОМОЩИ КВАДРАТУРНОГО ГЕТЕРОДИНА

i0 =  s.*cos(2*pi*f0*t);
q0 = -s.*sin(2*pi*f0*t);

%% ВЫДЕЛЕНИЕ ОГИБАЮЩЕЙ ПРИ ПОМОЩИ ФНЧ

[b a] = ellip(4, 0.1, 60, 0.1); % формирую ФНЧ

i = filter(b,a,i0); % фильтрую I канал
q = filter(b,a,q0); % фильтрую Q канал

z = i + 1i * q;     % выделенная комплексная огибающая

% рассчитываю спектр комплексной огибающей и вывожу на график
Z0 = fftshift(abs(fft(i0+1i*q0)));
Z  = fftshift(abs(fft(z)));
                        
figure; plot(frq, Z0, frq, Z, 'r');
        title('complex envelope spectr');
        xlabel('frequency, kHz');

%% ИЗМЕРЕНИЕ ГЛУБИНЫ АМ ИЗ ВЫДЕЛЕННОЙ ОГИБАЮЩЕЙ

amp = abs(z); % ам есть модуль огибающей z

% отбрасываю половину модуля чтобы исклюсить переходной процесс фильтрации
amp = amp(end/2:end);

% рассчет глубины и вывод на печать
mam = (max(amp) - min(amp))/(max(amp) + min(amp));
fprintf('исходная глубина модуляции:    %.4f\n', mAM);
fprintf('измеренная глубина модуляции:  %.4f\n', mam);