Ordnerstruktur

This commit is contained in:
Silas Oettinghaus
2026-04-23 16:16:58 +02:00
parent 8fd68c0a54
commit 456fd02186
13 changed files with 1117 additions and 194 deletions

View File

@@ -87,6 +87,53 @@ classdef Signal_test < IMDDTestCase
testCase.verifyEqual(height(sig.logbook), 1);
end
function spectrumCanUseSamplingRateNormalizedFrequencyAxis(testCase)
fig = figure("Visible", "off");
cleanup = onCleanup(@() close(fig));
fignum = fig.Number;
sig = Signal(randn(4096, 1), "fs", 8e9);
sig.spectrum( ...
"fignum", fignum, ...
"normalizeToSamplingRate", 1, ...
"normalizeTo0dB", 1, ...
"fft_length", 512);
ax = findobj(fig, "Type", "Axes");
lineObj = findobj(ax, "Type", "Line");
testCase.verifyEqual(ax.XLim, [-0.5 0.5], "AbsTol", 1e-12);
testCase.verifyEqual(string(ax.XLabel.String), "Normalized Frequency f/fs");
testCase.verifyGreaterThanOrEqual(min(lineObj.XData), -0.5);
testCase.verifyLessThanOrEqual(max(lineObj.XData), 0.5);
testCase.verifyLessThanOrEqual(abs(min(lineObj.XData) + 0.5), 1/512);
testCase.verifyLessThanOrEqual(abs(max(lineObj.XData) - 0.5), 1/512);
end
function spectrumCanShowOneSidedSamplingRateNormalizedAxis(testCase)
fig = figure("Visible", "off");
cleanup = onCleanup(@() close(fig));
fignum = fig.Number;
sig = Signal(randn(4096, 1), "fs", 8e9);
sig.spectrum( ...
"fignum", fignum, ...
"normalizeToSamplingRate", 1, ...
"show_onesided", true, ...
"normalizeTo0dB", 1, ...
"fft_length", 512);
ax = findobj(fig, "Type", "Axes");
lineObj = findobj(ax, "Type", "Line");
testCase.verifyEqual(ax.XLim, [0 0.5], "AbsTol", 1e-12);
testCase.verifyGreaterThanOrEqual(min(lineObj.XData), 0);
testCase.verifyLessThanOrEqual(max(lineObj.XData), 0.5);
testCase.verifyLessThanOrEqual(abs(max(lineObj.XData) - 0.5), 1/512);
end
function castingRoundTripPreservesSignalThroughAllDomains(testCase)
infoIn = Informationsignal([0; 1; 1; 0]);

View File

@@ -8,6 +8,7 @@ classdef Signalgenerator_test < IMDDTestCase
testCase.verifyEqual(gen.fs, 1000);
testCase.verifyEqual(gen.fsig, 50);
testCase.verifyEqual(gen.dimension, 1);
testCase.verifyEmpty(gen.M);
testCase.verifyEqual(gen.order, 7);
testCase.verifyEqual(gen.randkey, 0);
testCase.verifyEqual(gen.skip, 0);
@@ -102,6 +103,34 @@ classdef Signalgenerator_test < IMDDTestCase
testCase.verifyEqual(pam6Gen.length, 2^(7 - 2));
end
function pamFormatSelectsMapperReadyDimension(testCase)
pam4Gen = Signalgenerator( ...
"form", signalform.prms, ...
"M", 4, ...
"order", 7);
pam6Gen = Signalgenerator( ...
"form", signalform.prms, ...
"M", 6, ...
"order", 7);
testCase.verifyEqual(pam4Gen.dimension, 2);
testCase.verifyEqual(pam4Gen.length, 2^(7 - 1));
testCase.verifyEqual(pam6Gen.dimension, 5);
testCase.verifyEqual(pam6Gen.length, 2^(7 - 2));
end
function pam6FormatReturnsMapperReadyVector(testCase)
gen = Signalgenerator( ...
"form", signalform.prms, ...
"M", 6, ...
"order", 7);
signal = gen.build_signal();
testCase.verifySize(signal, [5 * 2^(7 - 2), 1]);
testCase.verifyEqual(mod(numel(signal), 5), 0);
end
function processWrapsPrmsSignalInInformationsignal(testCase)
gen = Signalgenerator( ...
"form", signalform.prms, ...