Eu evitaria a opção 3 - se você for usar um banco de dados para armazenar resultados brutos, também poderá usá-lo para armazenar todos os resultados.
A opção 1 parece que você acabará duplicando muitos dados para cada linha de resultado e terá apenas dois valores (deslocamento de tempo e valor) alterados.
Das três opções que você sugere, eu escolheria a Opção 2. Você poderá armazenar uma única linha de resultado para cada resultado e ter os detalhes do resultado disponíveis no banco de dados também, sem sobrecarregar a própria tabela de resultados .
Dependendo de como você espera usar os dados e quantos pontos de dados você tem por forma de onda de resultado, posso até ficar tentado a armazenar a forma de onda/sinal como uma única string (por exemplo, valores separados por vírgula).